嗨,朋友们是 struts2 中的新蜜蜂,我正在开发使用会话超时拦截器的应用程序,我的问题是超时没有发生 下面是我引用代码的链接 http://knowledge-serve.blogspot.in/2011/10/session-timeout-interceptor-in-struts-2.html
这个问题可能是因为我有一些 javascript 持续运行以刷新列表。或者可能是我错了,但此会话没有过期
请帮助我谢谢
正如MayurB正确指出的那样,您只需要交换堆栈即可。您也可以使用
HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST);
HttpSession httpSession = request.getSession(false);
这将在默认堆栈之前可用
<interceptors>
<interceptor name="SessionCheckInterceptor" class="com.vicwalks.web.interceptor.SessionCheckInterceptor"/>
<interceptor-stack name="testSessionValidationStack">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="SessionCheckInterceptor" />
</interceptor-stack>
</interceptors>
struts.xml
拦截器的顺序很重要。尝试更改defaultStack and SessionCheckInterceptor
的顺序。因为在您的代码中,defaultstack
不会首先调用。由于您不会在sessionCheckInterceptor
中获得sessionMap
对象.