</pre><p>首先web.cml中配置</p><p><pre name="code" class="html"><pre name="code" class="java"><span style="white-space:pre"> </span><!-- struts配置 -->
<filter>
<span style="white-space:pre"> </span><filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
然后struts.xml中的配置
<package name="default" extends="struts-default,json-default">
<interceptors>
<interceptor name="myInterceptor" class="com.tmg.filter.TmgPrivilegeInterceptor"/><!-- class引入的是过滤的类 -->
<interceptor-stack name="myInterceptorStack">
<interceptor-ref name="myInterceptor"/> <span style="font-family: Arial, Helvetica, sans-serif;"><!--引入上面。和上面的name属性要一直 --></span>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myInterceptorStack"></default-interceptor-ref>
<global-results>
<result name="logout">../index.jsp</result>
<result name="failure">../fail.jsp</result>
</global-results>
</package><pre name="code" class="java">
实现拦截的类
public class TmgPrivilegeInterceptor extends AbstractInterceptor {
/**
*
*/
private static final long serialVersionUID = 1L;
public void destroy()
{
// TODO Auto-generated method stub
System.out.println("拦截器销毁!");
}
public void init()
{
// TODO Auto-generated method stub
System.out.println("拦截器初始化");
}
public String intercept(ActionInvocation invocation) throws Exception
{
// TODO Auto-generated method stub
System.out.println("拦截器开始验证!");
if(LoginAction.class==invocation.getAction().getClass())
{
return invocation.invoke();
}
User user=(User)invocation.getInvocationContext().getSession().get("user");
if(user==null)
return "failure";
System.out.println("用户已经登录");
return invocation.invoke();
}
}
</pre><pre name="code" class="html">本人已验证...如果用户登录长时间没有操作的话..或者session销毁后..再去操作会直接跳回到登录页面...