您的位置:首页 > 其它

Session的创建和设置

2019-09-20 17:49 2041 查看

1、Session的获取:

(1)无参的方法:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
HttpSession httpSession=request.getSession();
System.out.println(httpSession.getId());
}

 

 请求中无Cookie,但是响应中存在Cookie:

 

 

 

 当再次访问该Servlet的时候,请求中存在Cookie,响应中的Cookie已经没有了:

 

 

 

以上为无参的方法获取Session,如果没有Session则创建一个,如果有则直接返回。

(2)有参的方法:

参数为false:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
HttpSession httpSession=request.getSession(false);
System.out.println(httpSession.getId());
}

如果有Session则直接返回。

没有的话返回500错误:

 

 参数为true:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
HttpSession httpSession=request.getSession(true);
System.out.println(httpSession.getId());
}

此方法与不加参数等效。

 2、Session的有效期限:

 

 前三次访问是连续访问三次CookieServlet,可以看出,SESSIONID的值是不会发生变化的,但是当关闭了浏览器,第四次访问CookieServlet时,SESSIONID发生了变化;第五次为更换了浏览器之后的结果,SESSIOID依旧会发生变化。

以下情况下Session需要重新建立:

(1)用户关闭了浏览器。

(2)关闭了服务器。

(3)用户没有向服务器提出请求(超过30分钟),过期后服务器自动删除。

3、Session的设置:

(1)时间:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
HttpSession httpSession=request.getSession(true);
httpSession.setMaxInactiveInterval(10);//十秒后失效
System.out.println(httpSession.getId());
}

第一次访问,成功返回SESSIONID。

 

 过十几秒钟后重新访问发现SESSIONID的值已经改变了:

 

 这是因为第一个SESSIOID已经过期了,需要创建第二个。

(2)强制失效:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
HttpSession httpSession=request.getSession(true);
httpSession.invalidate();
System.out.println(httpSession.getId());
}

 

 即执行invalidate()后可以将创建的SESSION立即结束。

4、session的特点:

(1)存储在服务器端。

(2)依赖于Cookie。

(3)有效期限。

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: