struts2拦截器

一、自定义拦截器

struts2拦截器类似于servlet过滤器

首先定义一个拦截器这个拦截器实现了Interceptor接口:

package cn.orlion.interceptor;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor; public class MyInterceptor implements Interceptor{ @Override
public void destroy() {
// TODO Auto-generated method stub } @Override
public void init() {
// TODO Auto-generated method stub } @Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
long start = System.currentTimeMillis();
String r = invocation.invoke(); System.out.println("action time=" + (System.currentTimeMillis() - start));
return r;
} }

这个过滤器在控制台打印出action运行的时间

在struts.xml中配置:

<package name="ognl" namespace="/" extends="struts-default">

        <interceptors>
<interceptor name="my" class="cn.orlion.interceptor.MyInterceptor"></interceptor>
</interceptors>
<action name="ognl" class="cn.orlion.actions.OgnlAction">
<result>
/ognl.jsp
</result>
<interceptor-ref name="my"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action> </package>

当访问ognl.action时就会在控制台打印出时间

2、应用token拦截器

struts2提供了一个token interceptor,用于防止表单重复提交,示例:

在表单jsp页面的form表单里添加<s:token></s:token>

在struts.xml中配置:

<action name="tag" class="cn.orlion.actions.TagAction">
<result>
/tag.jsp
</result>
<result name="invalid.token">
/error.jsp
</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="my"></interceptor-ref>
</action>
上一篇:Flask web开发之路七


下一篇:标准C++中的string类的用法总结