두 웹애플리케이션에서 세션을 공유할때 세션을 통해 서블릿 컨텍스트를 참조할때
어떤 서블릿 컨텍스트를 참조할까?
Root WebApp - xxx.co.kr
WebApp1 - xxx.co.kr/app1
두 애플리케이션은 서로 세션공유가 가능하도록 설정되어 있다
이때 xxx.co.kr로 접근하고 xxx.co.kr/app1으로 접근할때 두 애플리케이션간에
세션은 공유되어 있다.
문제는 WebApp1에서 session.getServletContext()를 호출할때 어떤 서블릿 컨텍스트가 반환될까?
애플리케이션의 접근 순서에 따라 다른데 xxx.co.kr을 접근하고 xxx.co.kr로 접근하게되면
xxx.co.kr에서 세션이 생성되고 Root WebApp의 서블릿 컨텍스트를 참조하게 되어서
WebApp1에서 session.getServletContext()는 xxx.co.kr의 서블릿 컨텍스트를 참조한다.
WebApp1에서 자신의 서블릿 컨텍스트를 참조하기 위해서는 session.getServletContext().getContext("/app1")으로 참조해야 한다.
Tomcat의 경우 context에 crossContext 속성을 true로 설정해야 가능하다고 합니다
댓글 없음:
댓글 쓰기