以下は、Tomcatがこれまでにセッションを維持する方法を知っている2つの方法です。
- 「JSESSIONID=xxxxxxxxxxxxxxx」のようなURL追加パラメータでは、リクエストがサーバー側に送信されるたびに、tomcatは「xxxxx」でセッションマップをクエリします。
- 「JSESSIONID=xxxxxxxxxxxxxxx」のようなフィールドをCookieに追加します。
したがって、私の理解では、ブラウザでCookieを無効にし、「JSESSIONID=xxxxxxxxxxxxxxx」のようなパラメータのないURLでページにアクセスするとします。セッションIDが変更されます。jspでコードを書く
<%
out.println(request.getSession().getId());
%>
このjspにアクセスするたびに、セッションIDが変更されます。ただし、実際には、sessionIdは変更されません。
私はブラウザでクッキーを観察しました、私は確かにクッキーを無効にしました。初めてページにアクセスしたとき、リクエストと応答は次のようになります。
Request URL:http://localhost:8080/examples/testt.jsp
Request Method:GET
Status Code:200 OK
----------
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:GBK,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Host:localhost:8080
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19
-------
Response Headersview source
Content-Length:342
Content-Type:text/html;charset=ISO-8859-1
Date:Sat, 05 May 2012 03:01:32 GMT
Server:Apache-Coyote/1.1
Set-Cookie:JSESSIONID=6C71760FD3B85C4696CD8E6204574A06; Path=/examples
2回目にこのページにアクセスしたとき、リクエストと応答は次のようになります。
Request URL:http://localhost:8080/examples/testt.jsp
Request Method:GET
Status Code:200 OK
--------
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:GBK,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:JSESSIONID=6C71760FD3B85C4696CD8E6204574A06
Host:localhost:8080
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19
--------
Response Headersview source
Content-Length:342
Content-Type:text/html;charset=ISO-8859-1
Date:Sat, 05 May 2012 03:03:19 GMT
Server:Apache-Coyote/1.1
Cookieが無効で、URLに「JSESSIONID = xxxxxxxxxxxxxxx」が含まれていない場合に、Tomcatがセッションを維持する方法を教えてもらえますか。
どうもありがとう。
ChromeでCookieを無効にしたときに間違いを犯しましたが、上記のテストでは実際にはCookieを無効にしていません。