我们可以设计一个Servlet,来看一看session到底是怎么工作的。
在Servlet中,可以设计这样的代码:
来查看session的工作情况。
1、session是在何种情况下创建的?
重启服务器,重新打开浏览器(这里就用IE了)。输入地址,得到输出为:
注意到,在请求报头中,没有cookie的内容。但在response响应中,有Set-Cookie的要求,这将影响到下一次浏览器的请求。
刷新一下,得到的输出为:
在Servlet中,可以设计这样的代码:
- //打印出sessionid,用来判断session是否新建
- HttpSession session = request.getSession();
- System.out.println("::SESSION ID IS : " + session.getId());
- //打印出请求报头中的内容
- Enumeration enu_req_headers = request.getHeaderNames();
- while(enu_req_headers.hasMoreElements()) {
- String headerName = (String)enu_req_headers.nextElement();
- if(!headerName.equals("cookie")) {//非Cookie报头
- System.out.println(headerName);
- }
- else {//Cookie报头
- String content = request.getHeader("cookie");
- System.out.println("::cookie : " + content);
- }
- }
- //响应中是否含有Set-Cookie,浏览器的下次提交将会受此影响
- boolean containCookie = response.containsHeader("Set-Cookie");
- System.out.println("::If The Response Contain Header:Set-Cookie? : "+containCookie);
- //判断此session是否是新创建的
- System.out.println("::If The Session is NEW : " + request.getSession().isNew());
- System.out.println();
来查看session的工作情况。
1、session是在何种情况下创建的?
重启服务器,重新打开浏览器(这里就用IE了)。输入地址,得到输出为:
- ::SESSION ID IS : 42DE852FBD9E23C5CA5E06E883D6F466
- accept
- accept-language
- accept-encoding
- user-agent
- host
- connection
- ::If The Response Contain Header:Set-Cookie? : true
- ::If The Session is NEW : true
注意到,在请求报头中,没有cookie的内容。但在response响应中,有Set-Cookie的要求,这将影响到下一次浏览器的请求。
刷新一下,得到的输出为: