tomcat如何保持会话

时间:2012-05-05 03:08:37

标签: session tomcat

以下是我知道tomcat如何保持会话的两种方式。

  1. 在URL中添加参数,如“JSESSIONID = xxxxxxxxxxxxxxx”,每当请求发送到服务器端时,tomcat将使用“xxxxx”查询会话映射
  2. 在Cookie中添加“JSESSIONID = xxxxxxxxxxxxxxx”字段。
  3. 因此,根据我的理解,如果我们在浏览器中禁用Cookie,并使用不带参数的URL访问我们的页面,例如“JSESSIONID = xxxxxxxxxxxxxxx”。会话ID将被更改。 在jsp中写一段代码

    <%  
        out.println(request.getSession().getId());  
    %>
    

    每当我们访问这个jsp时,会话ID都会改变。但事实是sessionId永远不会改变。

    我在浏览器中观察到了Cookie,我确实禁用了Cookie 。 当我第一次访问该页面时,请求和响应如下:

        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
    

    当我第二次访问该页面时,请求和响应如下:

    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。

1 个答案:

答案 0 :(得分:1)

您尚未停用Cookie。浏览器正在请求标头中发送cookie。