session的生命周期设置

编程语言及工具

104人已加入

描述

  Session保存在服务器端。为了获得更高的存取速度,服务器一般把Session放在内存里。每个用户都会有一个独立的Session。如果Session内容过于复杂,当大量客户访问服务器时可能会导致内存溢出。因此,Session里的信息应该尽量精简。

  Session在用户第一次访问服务器的时候自动创建。需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session。如果尚未生成Session,也可以使用request.getSession(true)强制生成Session。

  Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。用户每访问服务器一次,无论是否读写Session,服务器都认为该用户的Session“活跃(active)”了一次。

  由于会有越来越多的用户访问服务器,因此Session也会越来越多。为防止内存溢出,服务器会把长时间内没有活跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时时间没访问过服务器,Session就自动失效了。

  Session生命周期设置

  Session存储在服务器端,一般放置在服务器的内存中(为了高速存取),Sessinon在用户访问第一次访问服务器时创建,需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session,可调用request.getSession(true)强制生成Session。

  以下是对session的几种生命周期的设置:

  一丶最粗暴的设置方式

  在服务器对应的配置文件下的web.xml文件中修改《session-time-out》《/session-time-out》中的值。

  如下图所示:

  Tomcat默认session超时时间为30分钟,可以根据需要修改,负数或0为不限制session失效时间。

  二丶常用也是比较简便的方法

  在你的项目的web.xml文件中进行配置参数:

  对应的xml代码如下所示:

  《session-config》

  《session-timeout》20《/session-timeout》

  《/session-config》

  上面20的意思是会话的失效时间是20分钟。这里是按照分钟来计算。

  三丶比较温顺的一种设置方式

  在主页面/公共页面/或是在对应的Servlet下面的代码中添加如下代码:

  session.setMaxInactiveInterval(你想设置的时间);

  设置的时间是以秒计算,它是根据服务器来计算时间。

 Http Session的方法

  Object getAttribute(String);

  Enumeration《String》 getAttributeNames();

  long getCreationTime();

  String getId();

  String getLastAccessedTime();

  Int getMaxInactiveInterval();

  ServletContext getServletContext();

  void invalidate();//销毁当前session

  boolean isNew();

  void removeAttribute();

  void setAttribute(String, object);

  void setMaxInactiveInterval(int);

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分