Java

JSP의 img, script에 jsessionid가 추가되는 경우

gregorio 2018. 2. 22. 11:17

JSP에서 taglib c를 사용하여 img, script. css tag src를 지정하는 경우 resource에 jsessionid가 붙어 페이지를 처음 로딩할 때 jsessionid가 붙어 화면이 제대로 로딩되지 않는 경우가 발생한다.


화면을 다시 로딩하면 정상적으로 script, imgae, css가 적용된다.



■ 사용 예제

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>


<link rel="stylesheet" type="text/css" href="<c:url value='/rui/plugins/ui/form/LFileBox.css'/>"/> 


■ 오류 결과

<link type="text/css" rel="stylesheet" href="/resource/css/import.css;jsessionid=589184C928C5896286836A1EF0DE6880" />

<link rel="alternate stylesheet" title="bh_style1" type="text/css" href=";jsessionid=589184C928C5896286836A1EF0DE6880resource/css/global_style_Rtl.css" id="bhStyle1"></link>
<link rel="stylesheet" title="en_style1" type="text/css" href=";jsessionid=589184C928C5896286836A1EF0DE6880resource/css/global_style.css" id="enStyle1"></link>
<script type="text/javascript" src="/resource/js/dui_prototype.js;jsessionid=589184C928C5896286836A1EF0DE6880"></script>
<script type="text/javascript" src="/resource/js/dui_hhmenu.js;jsessionid=589184C928C5896286836A1EF0DE6880"></script>
<script type="text/javascript" src="/resource/js/foriegnCheck.js;jsessionid=589184C928C5896286836A1EF0DE6880"></script>


브라우저에서 소스보기를 선택하여 소스를 확인하면 모든 script, css에 jessionid가 붙어 있어 404 오류가 발생한다.


이를 해결하기 위해 여러가지 방법이 있지만, 소스를 수정하지 않고 해결하는 방법은 web.xml에 sessoin-config에 tracking-mod를 추가하면 해결된다.


tracking-mods는 web-app_3.0이상에서만 지원하기 때문에 web.xml namespace를 변경해야한다.


■해결방법

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

id="WebApp_ID" version="3.0">


  <session-config>

  <session-timeout>30</session-timeout>

<tracking-mode>COOKIE</tracking-mode>

  </session-config>