2011-01-13 4 views
4

내가 시도 사용할 때 URL이 JSESSIONID를 추가하지 :C : 쿠키

<c:url value="/web/pclub/userprofile" var="test"> 
    <c:param name="userid" value="${user.id}"/> 
</c:url> 
${test} 

을하지만하지 않거나 쿠키와 페이지를 검사 할 때 다음 JSESSIONID가 추가되지 않습니다. 왜 이런 일이 발생하는지 알고 있습니까? 쿠키를 사용할 때

+1

는 반드시 쿠키 *를 사용할 수 *있다 있습니까 ? 어떻게 한거야? – skaffman

+0

Firefox를 내 쿠키 제외 목록에 추가했습니다. 그리고 JSessionID는 로그인 할 때 내 URL에 추가됩니다. (일부 기본 생성 된 링크가 내 컨트롤 외부에 있음). 그리고 getRequestedSessionId를 사용하여 세션 ID를 검색 할 수 있습니다. – Jack

답변

2

jsessionid은 추가됩니다 세션은 서버 측에서 생성 (및 서버 측이되는 쿠키는 것 기본이며, 어떻게 든 이것에 대해 클라이언트에 통지 할 필요가 된 경우 접근). 생성 된 세션이 없으면 jsessionid을 추가 할 필요가 없습니다.

최소한 <c:url> 행이 호출되기 전에 다음 행을 JSP 상단에 추가하십시오. 세션 ID를 인쇄/디버깅 할뿐만 아니라 아직 완료되지 않은 경우 암시 적으로 세션을 생성합니다.

${pageContext.session.id} 

테스트 목적으로 만 수행하십시오. 작동하는 경우 문제의 원인은 세션의 수단이 없다는 것입니다. 있는 그대로 그대로 유지하십시오. 불필요하게 세션을 만들 필요가 없습니다. 브라우저가 쿠키를 지원하지 않는 세션이있을 때마다이 경우에는 c:url이 정상적으로 작동합니다. 그런데


는 쿠키가 실제로 사용할 경우, 확인 Firebug하여 요청 헤더를 추적 할 수 있습니다. 서버가 Set-Cookie 헤더를 응답에 설정 했더라도 요청에 Cookie 헤더가 없으면 클라이언트 측에서 쿠키가 실제로 비활성화되어 있음을 의미합니다.

0

나는 그러나 서버에 세션을 생성 강제로 BalusC 잘 생각, 당신은 다음과 같이 당신의 JSP의 상단에 지시 페이지를 추가 할 수 있습니다

<%@ page session="true" %>