no Session 博客分类: JavaEE no session
程序员文章站
2024-03-11 14:42:49
...
最近在写框架的时候,采用SSO(单点登录),同时需要使用no session的方式来提高性能。其实就是在所有请求之前把session状态设为失效,这样的话在大用户量的情况下可以减少请求的开支。
上面都是题外话:
先看一段对比代码
HttpServletRequest hsr = (HttpServletRequest) request; hsr.getSession().invalidate(); System.out.println(hsr.getSession().getId()); chain.doFilter(request, response); HttpServletRequest hsr = (HttpServletRequest) request; System.out.println(hsr.getSession().getId()); chain.doFilter(request, response);
7BD84B685916DDFBB602188B6B7B8EBA 7DC83FB878955750330CFCB809D5BFF3 69DF72DC4DBFBAAFFEFACE8AA21C084B 9FB9E9715D27946BEBDDF2D0E4D09860 FD7D4FD3224A7AB3DE5887D7F72EB753 4AEDE9F9739CEC6FB0869B9269B74441 4AEDE9F9739CEC6FB0869B9269B74441 4AEDE9F9739CEC6FB0869B9269B74441 4AEDE9F9739CEC6FB0869B9269B74441 4AEDE9F9739CEC6FB0869B9269B74441
分别是以上两个代码的结果。从结果可以很清楚的看到,第一种情况的session状态被销毁了,所以每次的请求session的id都是不一样的。
代码和结果很简单
PS:
session.invalidate()是让当前浏览器的session销毁,也就是一个session被销毁,比如用户登录后注销就用这个,因为注销意味着该用户session中的所有属性均失效。而removeAttribute()可以指定销毁session中的某个属性
推荐阅读
-
no Session 博客分类: JavaEE no session
-
jstl fmt功能说明 博客分类: JavaEE jstlfmt
-
jstl fmt功能说明 博客分类: JavaEE jstlfmt
-
程序员必备的七大面向对象设计原则(一) 博客分类: JavaEE 面向对象
-
程序员必备的七大面向对象设计原则(一) 博客分类: JavaEE 面向对象
-
jQuery实现Session过期提示 博客分类: JavaScript,jQuery jquerysession过期提示tipssessiontimeout
-
JAVAEE中用Session简单实现购物车功能示例代码
-
JAVAEE中用Session简单实现购物车功能示例代码
-
转 memcache保存php的session 解决多服务器的session问题 博客分类: php phpmemcached
-
Hibernate no session 错误 博客分类: JAVA常用框架 HibernateJava