sql = "select count(pnum) a from psd1028"; 를 이용하여 count한 값을 받아오려고한다.

그런데 rs = pstmt.executeQuery() 후 rs.next()를 미진행하면 문제가 발생할 수 있다.

 

어떤 문제가 발생하는지 아래 사진을 보도록하자.

 

 

첫번째는 rs.next()를 삭제하였다.

위의 결과는 아래의 list.jsp에서 해당 코드로 인해 상단에 숫자로 값을 출력하여 확인할 수 있다.

보시다시피 값이 0으로 표시되어 있는 것을 확인할 수 있다.

 

두번째는 rs.next()를 추가하였다.

위의 사진에서 볼 수 있듯이 전체 카운트를 정상적으로 전달하는 것을 확인할 수 있다.

그러므로 executeQuery이후에는 꼭 rs.next()를 하도록하자.

해당 list 파일을 컴파일시 

java.lang.ClassNotFoundException: D1029.DBConn

오류가 발생하였다.

 

오류 원인을 검색해본 결과 해당 클래스가 정상적으로 빌드되어 있어도 해당 오류가 발생되는 경우가 있다고 하였다.

 

 

위의 사진을 보면 보이다시피 DBConn 클래스가 D1029 패키지에 정상적으로 빌드되어 있는 것을 확인할 수 있다.

해결 방법은 두가지로 아래와 같다.

 

1. Project > clean 진행

2. 해당 class 파일을 삭제 후 다시 빌드

 

 

나의 경우 project > clean으로 문제가 해결되었다.

여기서 project > clean의 경우 해당 프로젝트 내의 클래스를 모두 삭제 후 다시 rebuild한다고한다.

그러므로 위의 방법으로 대부분 해결될 것으로 예상된다.

 

만약 위의 방법으로도 해결이 안된다면 해당 class를 수동으로 삭제 후 다시 rebuild 하여 동일한지 확인해보도록하자

Name [db명]은(는) 이 컨텍스트에 바인딩되지 않았습니다. [jdbc]을(를) 찾을 수 없습니다. 

해당 문제의 원인을 찾아내어 기록해두려고한다.

 

1번 사진
2번 사진

문제의 원인은 경로에 .이 있고 없고에 따라서 발생되었었다.

1. ./폴더명의 경우 현재 위치에 따라서 상대 경로로 경로로 이동하고

2. /폴더명의 경우 절대 경로로 이동한다.

 

그럼 1번 먼저 보도록하자.

1번 사진
2번 사진

위의 사진에서 1번 사진과 2번 사진의 차이를 알 수 있는가?

위의 1번 사진의 경우 ./폴더명으로 했을 때 현재 위치에서 폴더로 이동하는 상대 경로로 설정되어서 해당 폴더에 있는 해당 파일이 실행되게 된다.

 

그러나 2번 사진의 경우 /폴더명으로 했을 때 현재 위치에서 절대 경로로 이동되어 /member/member_list.jsp로 이동하게 된다.

 

이것의 문제는 우리는 지금 ROOT 프로젝트 안에 있는 /member 폴더로 이동해야 하는데,

/member/member_list.jsp로 이동시에는 절대 경로로 ROOT 프로젝트에 member 폴더로 이동하는게 아니라

어디에 있는지 모르는 /member/member_list.jsp로 이동되어 버린다는 것이다.

 

그러므로 위와 같은 문제가 발생 안되도록 가급적 상대 경로로 위치를 설정하는 것이 중요하다.

index 파일을 실행시킨 후 list 파일로 이동했다가

다시 index로 돌아간 후

다시 list로 돌아가니 아래와 같은 오류가 발생하였다.

"이 컨텍스트에 바인딩되지 않았습니다"라는 오류가 발생하였다.

db 연동이 제대로 안되었나하고 의심할 수 있으나 처음 호출시 정상 출력이 되는 것으로 보아 db는 정상 연동된 것으로 예상되었다.

 

문제의 원인은 list 링크였다. 그런데 바인딩 오류가 발생하다니 아이러니하다..

위와 같이 list 파일은 member 폴더 안에 있다. member 폴더는 root 프로젝트 안에 있다.

그리고 리스트로가면 member 폴더 안에 있는 member_list.jsp 파일로 이동하게된다.

 

그러나 여기서 돌아가기를 클릭하면 ROOT프로젝트 안에 있는 index.jsp로 이동한다.

index 파일은 아래와 같이 구성되어 있다.

 

그리고 위의 index_top 파일을 include한다.

해당 파일은 섹션 부분을 기준으로 위에 있는 코드들이다.

그리고 해당 코드에서 위의 사진의 리스트 부분은 위와 같이 member폴더에 member_list.jsp 파일로 이동하게 되어 있다.

 

코드상에서는 아무런 문제가 없는 것이다.

그런데 이상한건 member 폴더 안에서 index > list > index > list와 같이 동시에는 문제 없으나

meber폴더 index > meber폴더 list > ROOT 프로젝트 내에 index > member 폴더 list로 이동시 커넥션 풀을 사용하고 있을 때 아래와 같은 에러가 발생한다는 것이다.

 

 

위와 같이 멤버 폴더 내에 index 파일을 넣고 진행시에는 문제가 안된다.

아래 두개의 비교 영상을 첨부하려고한다.

 

멤버폴더 인덱스 > 리스트 > 멤버폴더 인덱스 > 리스트
멤버폴더 인덱스 > 리스트 > 루트 프로젝트 인덱스 > 리스트

 

위의 비교 영상을 보면 알다시피 정확한 원인은 모르겠으나 해당 폴더 내에서 움직이는데에는 문제가 없으나 다른 폴더로 이동 후 접속시에는 위와 같은 문제가 발생하는 것으로 보여진다.

form 태그
타입 설명 예시
enctype = "multipart/form-data"

파일을 form을 이용하여 다른 sss 파일을 multipart로 보낼 때 사용

 

method 어떤 get 또는 post 형태로 보낼 때 사용  
select select 박스를 사용할 때 사용 <SELECT NAME=sltSample SIZE=1>
        <OPTION VALUE=1>1번 보기입니다.</OPTION>
        <OPTION VALUE=2>2번 보기입니다.</OPTION>
        <OPTION VALUE=3>3번 보기입니다.</OPTION>
        <OPTION VALUE=4 SELECTED>4번 보기입니다.</OPTION>
    </SELECT>
option select 박스에서 option을 사용할 때 사용
<div align="center"></div> html로 해당 부분만 center로 정렬하길 원할 때

<div align="center>

<section>

내용

</section>

</div>

onclick form의 button으로 script를 사용하고자 할 때(동적 사용)

<input type="button" onclick="func()" value="목록">

onsubmit form의 submit으로 script를 사용하고자 할 때

<form onsubmit="func()" action="nextpage.jsp">

 

+ Recent posts