struts2 中处理会话超时的最佳方法是什么

发布于 2024-09-25 06:20:34 字数 1258 浏览 4 评论 0原文

我有一个 struts2 应用程序,我需要处理记录部分中的会话超时。

我的想法是使用 Interceptor 类:

public class SessionInterceptor extends AbstractInterceptor {
  @Override
  public String intercept(ActionInvocation invocation) throws Exception {
      Map<String,Object> session = invocation.getInvocationContext().getSession();
      if(session.isEmpty())
          return "session";
      return invocation.invoke();
  }
}

在我的 struts.xml 中:

<struts>
  <interceptor name="session" class="org.app.struts.interceptor.SessionInterceptor" />  
  <interceptor name="admin" class="org.app.struts.interceptor.AdminInterceptor" />

  <interceptor-stack name="adminStack">
    <interceptor-ref name="defaultStack"/>
    <interceptor-ref name="session"/>
    <interceptor-ref name="admin"/>
  </interceptor-stack>

  <action name="doaction" class="org.app.class" method="doAction">
    <interceptor-ref name="adminStack" />
    <result name="success">page.jsp</result>
    <result name="error">error.jsp</result>
    <result name="session">sessionexpired.jsp</result>
  </action>
</struts>

有更好的方法吗?

谢谢!

I have a struts2 app and I need to handle the session-timeout in the logged section.

What I have in mind is to use an Interceptor class :

public class SessionInterceptor extends AbstractInterceptor {
  @Override
  public String intercept(ActionInvocation invocation) throws Exception {
      Map<String,Object> session = invocation.getInvocationContext().getSession();
      if(session.isEmpty())
          return "session";
      return invocation.invoke();
  }
}

In my struts.xml :

<struts>
  <interceptor name="session" class="org.app.struts.interceptor.SessionInterceptor" />  
  <interceptor name="admin" class="org.app.struts.interceptor.AdminInterceptor" />

  <interceptor-stack name="adminStack">
    <interceptor-ref name="defaultStack"/>
    <interceptor-ref name="session"/>
    <interceptor-ref name="admin"/>
  </interceptor-stack>

  <action name="doaction" class="org.app.class" method="doAction">
    <interceptor-ref name="adminStack" />
    <result name="success">page.jsp</result>
    <result name="error">error.jsp</result>
    <result name="session">sessionexpired.jsp</result>
  </action>
</struts>

Is there a better approach ?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

几度春秋 2024-10-02 06:20:34

你走在正确的轨道上。

You are on the right track.

旧时光的容颜 2024-10-02 06:20:34

试试这个:http://nickcoblentz。 blogspot.com/2008/11/page-level-access-controls-in-struts-2.html
在 web.xml 中:

<session-config>  
        <session-timeout>  
            30  
        </session-timeout>  
    </session-config>    

这是 30 分钟

try this: http://nickcoblentz.blogspot.com/2008/11/page-level-access-controls-in-struts-2.html
and in web.xml:

<session-config>  
        <session-timeout>  
            30  
        </session-timeout>  
    </session-config>    

this is for 30 minutes

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文