session熟知

Posted 张小伙日常番

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了session熟知相关的知识,希望对你有一定的参考价值。

Session

  服务器端保存会话信息的技术.

1 //如何获得session
2 HttpSession session = request.getSession();
3 //如何操作session
4 session.setAttribute(arg0, arg1)
5 session.getAttribute(arg0)
6 session.removeAttribute(arg0)
7 session.getAttributeNames()

原理

  浏览器第一次访问服务器,服务器会在内存中开辟一个空间(session),并把session对应的ID发送给浏览器.那么下次浏览器再去访问服务器,会把sessionID 交给服务器,服务器通过sessionID 找到刚才开辟的空间.

Session细节问题

  1. 服务器让浏览器记住sessionID的cookie 默认过期时间是 (-1)==> 关闭浏览器cookie就丢失 ==> cookie丢失sessionID就丢失 ==> 找不到服务器的session
1 session中除了4个操作map的方法之外,其它方法
2 long getCreationTime() 获得创建时间
3 String getId() 获得sessionID
4 long getLastAccessedTime() 获得最后一次访问时间
5 int getMaxInactiveInterval() 获得session的寿命
6 void setMaxInactiveInterval(int interval) 设置session的过期时间 
7 void invalidate() 让session立即失效
8 boolean isNew() 

关于设置session的最大有效时间

默认是30分钟.   在tomcat的web.xml中 <session-config> 配置的.如何修改session的过期时间?
  1.修改在tomcat的web.xml中 <session-config> ==> 影响服务器中的所有项目
  2.在项目的web.xml中 加入<session-config> 配置.==> 影响的是当前项目
  3.通过setMaxInactiveInterval(int interval)方法设置.==> 当前操作的session

以上是关于session熟知的主要内容,如果未能解决你的问题,请参考以下文章

session.flush与transaction.commit

一个队asp.net session进行了再次封装的C#类的代码

redis存储session配制方法

少部分手机浏览器对于COOKIE支持不够导致服务端无法读取session的解决方案

sqlserver-处理死锁

暑假自学JAVA Web心得