struts2中设置session及其有效期时间

1. 设置session  

ServletActionContext.getRequest().getSession().setAttribute("user", u);     

ServletActionContext.getRequest()得到Request请求,然后getSession()得到Session,最后使用setAttribute("user", u)往session      中放入名为user的变量,u是user的值      ActionContext.getContext().getSession().put(key,value); 也可以实现

2. action中设置session有效期的三种方法     

方法一:        

在使用了struts2框架的任何地方使用        ServletActionContext.getRequest().getSession().setMaxInactiveInterval(xxx);    

方法二:       

 在Action中定义一个HttpServletRequest的成员对象req;        Action类实现ServletRequestAware接口,实现其中的方法;        在实现的方法中编写: req=方法参数;      然后在该Action中任何需要用到Session的地方使用req.getSession()......    

方法三:          

在工程的 web.xml中 设置session的有效期30session-timeout元素用来指定默认的会话超时时间间隔,以分钟为单位。该元素值必须为整数。如果session-timeout元素的值为零或负数,则表示会话将永远不会超时。 session-timeout的取值范围是1-1440。

setMaxInactiveInterval和session-config的比较: 

1)、setMaxInactiveInterval的优先级高,如果setMaxInactiveInterval没有设置,则默认是session-config中设置的时间。

2)、setMaxInactiveInterval设置的是当前会话的失效时间,不是整个web服务的。 

3)、setMaxInactiveInterval的参数是秒,session-config当中配置的session-timeout是分钟。

你可能感兴趣的:(struts2中设置session及其有效期时间)