问题描述
Action中的session值的失效与哪几方面有关???我在这里面用session存放了一个user的信息publicActionForwardcheck(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{response.setContentType("text/html;charset=utf-8");request.getCharacterEncoding();intid=0;//UserLoginFormuserLoginForm=(UserLoginForm)form;Listlistcheck=newUserLoginService().checkUser(userLoginForm.getUserName(),userLoginForm.getUserPass());if(listcheck.size()!=0){//即如果登录成功Userloginuser=(Userlogin)listcheck.get(0);request.getSession().setAttribute("user",user);id=user.getUsertype().getTypeId();request.setAttribute("userLogin",user);ListleftparentLeft=newParentService().checkparentById(id);request.setAttribute("leftparentLeft",leftparentLeft);returnmapping.findForward("main");}else{request.setAttribute("fail","123");returnmapping.findForward("loginfail");}}但在这里面过段时间后就取不到了,时间在web.xml我已经设置成了<servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value></init-param><init-param><param-name>debug</param-name><param-value>3</param-value></init-param><init-param><param-name>detail</param-name><param-value>3</param-value></init-param><load-on-startup>0</load-on-startup></servlet><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><session-config><session-timeout>20</session-timeout></session-config>在其他的Action有时能取到,但一会就取不到了。帮忙解决一下,谢谢。
解决方案
解决方案二:
把有效期设置长点呗,20少了,设置成2000应该没问题了吧
解决方案三:
引用1楼wiselight的回复:
把有效期设置长点呗,20少了,设置成2000应该没问题了吧
我设成了3000都不行。
解决方案四:
在页面你是怎么获取的
解决方案五:
你没有写session过滤器吗?当session过期自动转到登录页面就OK了这样就不会报错了
解决方案六:
放的时候和取的时候的key不一致吧。
解决方案七:
引用5楼qqcrazyboy的回复:
放的时候和取的时候的key不一致吧。
一样
解决方案八:
你确定user放进去了?不会user是空的吧放到时候打印一下user呗