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} 을 사용한다.



+ Recent posts