jstl <c:url value=""> 사용시 ;jsessionid= 붙는 현상

by 조쉬 posted Mar 31, 2021
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

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