웹 서비스를 개발하는 도중 종종 redirect를 할 때 URL뒤에 jsessionid=XXXXXXXXX가 붙는 경우가 있다.
이렇게 붙을 경우 페이지가 제대로 작동하지 않게 된다.
이렇게 붙는 이유는 브라우저에서 쿠키를 사용할 수 없거나 쿠키가 없는 경우 URL이 인코딩 될 때,
jsessionid가 URL 뒤에 추가된다.
또한, 쿠키가 활성화 된 경우에도 URL이 인코딩 되는 경우 Java 애플리케이션은 첫 번째 요청에 대한
모든 URL에 jsessionid를 추가한다.
추가이유는 첫 번째 요청을 보낼 때 서버가 브라우저에서 쿠키가 사용 가능한지 여부를 모르기 때문이다.
이를 해결하기 위해서는 Tomcat 서버의 설정을 변경해서 아에 위 기능을 비활성화 하는 방법이 있다.
첫번째 방법은 Tomcat 6.0.30 이상에서 사용할 수 있는 방법으론 server.xml 파일의 <Context> 설정에
disableURLRewriting 속성에 true를 사용하는 방법이다.
<Context docBase="simple_home" path="/sht_webapp" disableURLRewriting="true" reloadable="true" />
두번째 방법은 Tomcat 7과 Tomcat 8에서 Servlet 3.0 이상의 스펙을 사용하고 있다면 각 웹애플리케이션의
web.xml 파일의 <session-config>태그에서 <tracking-mode>COOKIE</tracking-mode>로 비활성화 할 수 있다.
<session-config>
<session-timeout>600</session-timeout>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
'개발자 > Java' 카테고리의 다른 글
| POI를 이용한 대용량 엑셀 다운로드(SXSSF 방식 + sqlSessionFactory + ResultHandler + VO 활용) (1) | 2024.10.18 |
|---|---|
| [Java] 숫자, 금액을 한글로 변환 (0) | 2024.06.26 |
| [Java] Collections.frequency() 사용법 (0) | 2024.06.13 |
| [Java] Jaspersoft Studio 출력 방식(PDF, 바로 프린트) (0) | 2024.06.12 |
| [Java] POI로 엑셀 만들기(AbstractExcel 사용) (1) | 2024.06.11 |