1

以下は、Tomcatがこれまでにセッションを維持する方法を知っている2つの方法です。

  1. 「JSESSIONID=xxxxxxxxxxxxxxx」のようなURL追加パラメータでは、リクエストがサーバー側に送信されるたびに、tomcatは「xxxxx」でセッションマップをクエリします。
  2. 「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を無効にしていません。

4

1 に答える 1

1

Cookie を無効にしていません。ブラウザーは、要求ヘッダーで Cookie を送信しています。

于 2012-05-05T08:30:56.047 に答える