Java 会话变量在其会话超时之前被销毁 60
当web应用程序空闲整整60分钟时,上面的web.xml配置代码应该会杀死会话变量 但在我的项目中,会话变量在60分钟前被销毁。例如,我将一个会话变量存储在一个Java 会话变量在其会话超时之前被销毁 60,java,jsp,session,servlets,Java,Jsp,Session,Servlets,当web应用程序空闲整整60分钟时,上面的web.xml配置代码应该会杀死会话变量 但在我的项目中,会话变量在60分钟前被销毁。例如,我将一个会话变量存储在一个jsp中,并在其他jsps中访问它,但问题是,有时存储的会话变量在指定的超时值之前被销毁,并显示该会话变量的null值 如何解决此问题?将其保存到数据库中。一个小时是相当长的时间来维持一个会议。想象一下,如果有很多用户,服务器将很快耗尽内存。@BorisPavlović如果我在jsp中使用应用程序或页面上下文对象,它会解决这个问题吗?不幸
jsp
中,并在其他jsp
s中访问它,但问题是,有时存储的会话变量在指定的超时值之前被销毁,并显示该会话变量的null
值
如何解决此问题?将其保存到数据库中。一个小时是相当长的时间来维持一个会议。想象一下,如果有很多用户,服务器将很快耗尽内存。@BorisPavlović如果我在jsp中使用应用程序或页面上下文对象,它会解决这个问题吗?不幸的是,不会,它会保存在内存中,没有保存在磁盘上。@BorisPavlović我告诉你我项目的场景,请建议我哪种方法是正确的,我们有不同类型的用户角色,根据用户角色,菜单级别应该有所不同,所以我所做的是在DB中创建用户角色字段,然后在一个jsp中获取并存储该字段,并在会话中存储该用户角色。在其他jsp中,我处理该会话变量,并基于该变量显示菜单。由于此会话被破坏,User_role变量变为NULL。如果不阅读代码和web容器配置,很难猜测发生了什么。
<session-timeout>60</session-timeout>