Java struts2创建会话对象的原因和时间?
我只想在我的web应用程序中成功验证用户时创建会话。但由于某些原因,struts2创建会话对象,即使我们只是访问登录页面 我仔细阅读了struts2的一些文档,发现使用struts.custom.i18n.resources可能会创建会话。所以我从struts.xml文件中删除了它。但即使会话是在我的web应用程序中创建的 在此方面的任何帮助/想法都非常感谢 更新的问题 我的web.xml中有以下几行代码用于处理Cayenne数据上下文Java struts2创建会话对象的原因和时间?,java,jsp,struts2,apache-cayenne,xwork,Java,Jsp,Struts2,Apache Cayenne,Xwork,我只想在我的web应用程序中成功验证用户时创建会话。但由于某些原因,struts2创建会话对象,即使我们只是访问登录页面 我仔细阅读了struts2的一些文档,发现使用struts.custom.i18n.resources可能会创建会话。所以我从struts.xml文件中删除了它。但即使会话是在我的web应用程序中创建的 在此方面的任何帮助/想法都非常感谢 更新的问题 我的web.xml中有以下几行代码用于处理Cayenne数据上下文 <filter> <filter
<filter>
<filter-name>CayenneFilter</filter-name>
<filter-class>org.apache.cayenne.conf.WebApplicationContextFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CayenneFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
卡耶恩滤波器
org.apache.cayenne.conf.WebApplicationContextFilter
卡耶恩滤波器
/*
这是否导致在我的web应用程序中创建会话
-NarendraJSP页面会自动创建会话,除非您特别包含一条指令,告诉它们不要这样做
IMO试图阻止创建会话是浪费时间。相反,将会话中的某些内容放在有效登录上,并在注销时使会话无效。其他任何事情都太麻烦了。JSP页面会自动创建会话,除非您特别包含一条指令,告诉它们不要这样做
IMO试图阻止创建会话是浪费时间。相反,将会话中的某些内容放在有效登录上,并在注销时使会话无效。其他任何事情都太麻烦了。以下是从Cayenne的角度给出的答案。默认情况下,WebApplicationContextFilter为筛选器匹配的每个请求惰性地创建会话绑定的ObjectContext。这当然会创建一个HttpSession 因此,一种解决方案是将过滤器映射从“/*”减少到与经过身份验证的页面相对应的更具体的URL。这样,匿名用户将不会调用Cayenne filter
如果无法做到这一点,请创建自己版本的WebApplicationContextFilter(毕竟WebApplicationContextFilter只是一个示例,说明如何在应用程序中引导Cayenne,因此请检查其来源,并为自己创建类似的内容)。您自己的过滤器可以实现一些逻辑,从而跳过匿名的ObjectContext(和会话)创建。以下是从Cayenne的角度给出的答案。默认情况下,WebApplicationContextFilter为筛选器匹配的每个请求惰性地创建会话绑定的ObjectContext。这当然会创建一个HttpSession 因此,一种解决方案是将过滤器映射从“/*”减少到与经过身份验证的页面相对应的更具体的URL。这样,匿名用户将不会调用Cayenne filter
如果无法做到这一点,请创建自己版本的WebApplicationContextFilter(毕竟WebApplicationContextFilter只是一个示例,说明如何在应用程序中引导Cayenne,因此请检查其来源,并为自己创建类似的内容)。您自己的筛选器可以实现一些逻辑,跳过匿名对象的ObjectContext(和会话)创建。请重新表述创建会话对象的原因和时间。有帮助的应用服务器负责创建和管理会话,而不是struts 2。试图禁用此功能没有任何意义,请参见Davids的答案。请重新表述以下问题:创建会话对象的原因和时间。有帮助的应用服务器负责创建和管理会话,而不是struts 2。没有必要尝试禁用此功能,请参阅Davids的答案。我已经在jsp页面中使用以下指令来阻止创建会话@纳伦德拉说真的,没有理由这么麻烦。为什么您关心是否有未使用的会话?我已经在jsp页面中使用以下指令来防止创建会话@纳伦德拉说真的,没有理由这么麻烦。为什么你会在意是否有未使用的会话?谢谢你的详细回答。谢谢你的详细回答。