jstl c:url 사용시
url 뒤에 jsessionid가 붙는 현상이 발생했다.
jsp 소스
//상세조회
function fn_view(tblId, row) {
var param = {};
P_link("<c:url value = "/usr/agid/UsrAgidBasc0202.do"/>","",param);
}
결과 html
//상세조회
function fn_view(tblId, row) {
var param = {};
P_link("/usr/agid/UsrAgidBasc0202.do;jsessionid=897DDB88642E8EC0C014788F819FF3BA","",param);
}
세션이 생성되기 첫번째 접근 페이지에서 c:url을 사용한 경우
위와같은 ;jsessionid= 이 붙는 현상이다.
이는 서버에서 클라이언트에 세션을 유지하기 위해 쿠키를 생성해야 하는데 클라이언트가 쿠키생성을 허용했는지 허용하지 않았는지
불확실 하므로 jsessionid를 붙여서 다니는 것이다.
브라우저에서 쿠키 허용을 차단하면 더 쉽게 테스트 해볼 수 있다.
해결 방법은
1. jstl 기본 설정 방식이므로 그냥 사용한다.
2. web.xml 을 아래와 같이 변경한다.
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
3. c:url 대신 ${pageContext.request.contextPath} 을 사용한다.