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)有效期限。
相关文章推荐
- 利用servlet创建session,并设置权限
- OCM_Session7_2_创建组,用户,设置用户密码
- 利用servlet创建session,并设置权限
- session的创建和时间设置
- 设置session存储在int sqlserver上---使用aspnet_regsql.exe工具
- oracle基础:创建表和设置主键,修改属性等
- php中session过期时间设置及回收机制详解:
- Ruby on rails开发从头来(windows)(八)-使用Session创建购物车
- Cocos2d-x3.2 Sprite精灵类的创建与设置
- oracle用户创建以及权限的设置
- 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 // 节中包括..
- php中设置多级目录session的问题
- PHP会话控制之如何正确设置session_name
- 设置session会话时间
- Mysql在创建好表之后为表创建自增长,并且设置自增长的起始值
- web.xml之session超时设置 以及设置session超时的几种方法
- TAdoConnection和TDataModule设置及创建和初始化的问题?
- Strust2 Action设置的session如何在porlet获取
- 解决:只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时 ,vs2010智能提示消失
- php thinkphp 设置session的有效时间