• struts2拦截器の简单实现(日语系统,请忽略乱码,重在实现)


    1.创建类实现interceptor接口或者继承abstractinter~~~类

    package com.mi.intercepter;
    
    import java.util.Date;
    
    import com.mi.action.LoginAction;
    import com.opensymphony.xwork2.ActionInvocation;
    import com.opensymphony.xwork2.interceptor.Interceptor;
    
    public class Intercep implements Interceptor{
    
        private static final long serialVersionUID = 1L;
    
        private String name;
        @Override
        public void destroy() {
            System.out.println("destroy is run************");
        }
    
        @Override
        public void init() {
            System.out.println("init is run************");
        }
    
        @Override
        public String intercept(ActionInvocation invocation) throws Exception {
            LoginAction loginAction = (LoginAction) invocation.getAction();
            
            System.out.println(getName()+"the***starttime is***  "+new Date());
            long start = System.currentTimeMillis();
            String result = invocation.invoke();
            
            System.out.println("the endtime***  "+new Date());
            long end = System.currentTimeMillis();
            
            System.out.println(getName()+"the costtime is ***  "+(end-start)+"毫秒");
            System.out.println("result s result***  "+result);
            return result;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }

    2.在struts.xml文件中配置已经创建的拦截器,并且配置要拦截诶的action

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    <struts>
        <constant name="struts.i18n.encoding" value="utf-8" />
    
        <package name="lee" extends="struts-default">
        
            <interceptors>
                <interceptor name="simple" class="com.mi.intercepter.Intercep">
                    <param name="name">简单拦截器</param>
                </interceptor>
            </interceptors>
            
            <!-- 用户注册的Action -->
            <action name="regist" class="com.mi.action.RegistAction">
                <!-- 类型转换失败、输入校验失败,转入input对应的视图 -->
                <result name="input">/content/registForm.jsp</result>
                <result>/content/show.jsp</result>
            </action>
    
            <action name="login" class="com.mi.action.LoginAction">
                <result name="error">/content/error.jsp</result>
                <result name="success">/content/welcome.jsp</result>
                <interceptor-ref name="defaultStack"></interceptor-ref>
                <interceptor-ref name="simple">
                    <param name="name">改名后的拦截器</param>
                </interceptor-ref>
            </action>
            <action name="*">
                <result>/content/{1}.jsp</result>
            </action>
    
        </package>
    </struts>

    3.我的loginAction

    package com.mi.action;
    
    import com.opensymphony.xwork2.ActionSupport;
    public class LoginAction extends ActionSupport {
        private static final long serialVersionUID = 1L;
        private String username;
        private String password;
    
        // usernameオトsetterコヘgetterキスキィ
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getUsername() {
            return username;
        }
    
        // passwordオトsetterコヘgetterキスキィ
        public void setPassword(String password) {
            this.password = password;
        }
    
        public String getPassword() {
            return password;
        }
    
        public String execute() throws Exception {
            System.out.println("ス��executeキスキィヨエミミフ�..........");
            Thread.sleep(1500);
            if (getUsername().equals("tangxiujuan") && getPassword().equals("tangxiujuan")) {
                return SUCCESS;
            }
            return ERROR;
        }
    }

    4.此时控制台会打印出如下内容,请忽略乱码!!!重点在于拦截器!

  • 相关阅读:
    Java学习之Jdk配置
    Socket网络模型之Select模型
    c#之初见反射
    c++读取文件夹中的文件
    C#泛型的初步理解
    C#接口简单介绍
    c#类,属性,方法和对象基本介绍
    事件的基本认识
    委托的基本认识
    在Xshell中使用rz命令上传文件出现乱码且文件无法删除的解决办法
  • 原文地址:https://www.cnblogs.com/tingbogiu/p/5798490.html
Copyright © 2020-2023  润新知