会话到期后,将当前页面移至登录页面。如果用户单击浏览器中的后退或前进按钮,它将重定向到上一页而不是显示登录页面。我尝试使用拦截器使会话过期并避免缓存存储,但页面仍然移动到上一页而不是登录。我的代码如下,
myInterceptor.java
public class myInterceptor extends AbstractInterceptor {
private static final long serialVersionUID= 1L;
@Override
public String intercept(ActionInvocation ai) throws Exception {
final ActionContext context = ai.getInvocationContext();
HttpServletResponse response = (HttpServletResponse) context.get(StrutsStatics.HTTP_RESPONSE);
if(response!=null){
response.setHeader("Cache-control", "no-cache, no-store");
response.setHeader("Pragma","no-cache");
response.setHeader("Expires", "-1");
}
return ai.invoke();
}
}
struts.xml中
<package name="default" namespace="/" extends="struts-default,json-default">
<interceptors>
<interceptor name="myInterceptor" class="com.webapp.myInterceptor"/>
<interceptor-stack name="defaultinterStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="myInterceptor"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="defaultinterStack"/>
<action name="home" class="com.webapp.Action" method="home" >
<result name="success">/start.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
任何人都可以建议我如何解决这个问题。