Java 拦截摧毁法
我在struts2中创建了一个Java 拦截摧毁法,java,struts2,Java,Struts2,我在struts2中创建了一个身份验证拦截器。 我必须检查拦截器方法何时被调用。 所以我在控制台上打印了方法名。 这是我的代码 public class AuthenticationInterceptor implements Interceptor { @Override public void destroy() { System.out.println("AuthenticationInterceptor destroy"); } @Override public void
身份验证拦截器。
我必须检查拦截器方法何时被调用。
所以我在控制台上打印了方法名。
这是我的代码
public class AuthenticationInterceptor implements Interceptor {
@Override
public void destroy() {
System.out.println("AuthenticationInterceptor destroy");
}
@Override
public void init() {
System.out.println("AuthenticationInterceptor init");
}
@Override
public String intercept(ActionInvocation actionInvocation) throws Exception {
System.out.println("AuthenticationInterceptor intercept");
return actionInvocation.invoke();
}
}
这是我在struts.xml中的包。
<package name="portfolioSecure" namespace="/secure" extends="portfolio">
<interceptors>
<interceptor name="authenticationInterceptor" class="ask.portfolio.utility.AuthenticationInterceptor"></interceptor>
<interceptor-stack name="secureStack">
<interceptor-ref name="authenticationInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="secureStack"></default-interceptor-ref>
<action name="login" class="ask.portfolio.actions.Login">
<result name="success">/loginSuccess.jsp</result>
<result name="error">/welcome.jsp</result>
</action>
</package>
/loginsAccess.jsp
/welcome.jsp
当我的应用程序启动时,AuthenticationInterceptor init在控制台上打印
同样地,身份验证侦听器拦截也会打印。但是,身份验证侦听器销毁即使我停止服务器也不会打印
我想知道何时调用interceptors destroy method,以及interceptor中的后处理与destroy method()有关。当容器或应用程序停止或取消部署时,destroy方法只调用一次。它调用以让拦截器清理它分配的任何资源。您使用的是哪个版本的struts2?这是一个已知的问题,如果我记得的话,已经在版本2.1.3左右修复