zoukankan      html  css  js  c++  java
  • 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.此时控制台会打印出如下内容,请忽略乱码!!!重点在于拦截器!

  • 相关阅读:
    (22)ASP.NET Core2.2 EF创建模型(索引、备用键、继承、支持字段)
    (21)ASP.NET Core2.2 EF创建模型(关系)
    (20)ASP.NET Core2.2 EF创建模型(必需属性和可选属性、最大长度、并发标记、阴影属性)
    (19)ASP.NET Core2.2 EF创建模型(包含属性和排除属性、主键、生成的值)
    (18)ASP.NET Core2.2 基于现有数据库创建EF模型(反向工程)
    (17)ASP.NET Core2.2 EF基于数据模型创建数据库
    (16)ASP.NET Core2.2 通用主机(HostBuilder)
    (15)ASP.NET Core2.2 Web主机(IWebHostBuilder)
    (14)ASP.NET Core2.2 中的日志记录
    前端也要懂物理 —— 惯性滚动篇
  • 原文地址:https://www.cnblogs.com/tingbogiu/p/5798490.html
Copyright © 2011-2022 走看看