zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    Android变化如何破解几场金
    mysql 在创建批处理脚本日志表信息
    近期感悟要多说多想多做
    Spring使用小结2
    structs2使用小结2
    2013第50周五打包
    2013第50周四开发记
    jquery使用总结
    2013第50周三开发记
    eclipse编辑工具小结
  • 原文地址:https://www.cnblogs.com/orlion/p/5034293.html
Copyright © 2011-2022 走看看