博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2实验5:struts2 拦截器
阅读量:6716 次
发布时间:2019-06-25

本文共 4536 字,大约阅读时间需要 15 分钟。

实验思路

  1. 编写Interceptor 继承 AbstractInterceptor类
  2. 重写public String intercept(ActionInvocation invocation)方法
  3. 编写struts2.xml

关键struts2.xml 代码

my first interceptor
复制代码
testuser
123
my changed interceptor
复制代码

目录结构

实验结果

代码(关键代码,文末有实验5github链接)

struts.xml

my first interceptor
/error.jsp
/users/login_userLoginPage.do
/users/login_userLoginPage
${directUrl}
testadmin
123
testuser
123
my changed interceptor
${directUrl}
复制代码

MyInterceptor.java

package com.zy.javaee.interceptor;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.AbstractInterceptor;import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;import com.zy.javaee.controller.actions.UserLoginAction;import com.zy.javaee.domin.User;import java.util.Date;import java.util.Map;/** * Created by Joey_Tsai on 2018/4/11. */public class MyInterceptor extends  AbstractInterceptor {    private String myInterceptorParam;    private String defaultUsername;    public  String getDefaultPassword() {        return defaultPassword;    }    public void setDefaultPassword(String defaultPassword) {        this.defaultPassword = defaultPassword;    }    private String defaultPassword;    public String getDefaultUsername() {        return defaultUsername;    }    public void setDefaultUsername(String defaultUsername) {        this.defaultUsername = defaultUsername;    }    //    private String defaultPassword;    public String getMyInterceptorParam() {        return myInterceptorParam;    }    public void setMyInterceptorParam(String myInterceptorParam) {        this.myInterceptorParam = myInterceptorParam;    }    //省略getter和setter    @Override    public String intercept(ActionInvocation invocation) throws Exception {        // TODO Auto-generated method stub        Map paramMap = invocation.getInvocationContext().getParameters();        String[] username = (String[]) paramMap.get("user.username");        String[] password = (String[]) paramMap.get("user.password");        String result;        if (username != null && password != null){            String[] usernameParam = username[0].split(",");            String[] passwordParam = password[0].split(",");            User user = new User();            user.setUsername(usernameParam[0]);            user.setPassword(passwordParam[0]);            User defaultUser = new User();            defaultUser.setUsername(defaultUsername);            defaultUser.setPassword(defaultPassword);            UserLoginAction userLoginAction = (UserLoginAction) invocation.getAction();            userLoginAction.setUser(user);            userLoginAction.setDefaultUser(defaultUser);            System.out.println(myInterceptorParam + " 拦截器---开始执行登录Action的时间为" + new Date());            long start = System.currentTimeMillis();            result = invocation.invoke();            System.out.println(myInterceptorParam + " 拦截器---执行完登录Action的时间为" + new Date());            long end = System.currentTimeMillis();            System.out.println(myInterceptorParam + " 拦截器---执行Action的时间为" + (end - start) + "ms");        }        else result = invocation.invoke();        return result;    }}复制代码

GITHUB链接:https://github.com/joeytsai03/javaee_test5.git

转载地址:http://wlrlo.baihongyu.com/

你可能感兴趣的文章
typescript实现类规则
查看>>
vue中echarts随窗体变化
查看>>
使用python 3.x 对pythonchallenge-----0的解答过程
查看>>
HBase ZooKeeper安装
查看>>
mvc4,jquery Bundle
查看>>
得到IP
查看>>
关于如何实现浮动元素居中
查看>>
Daily Scrum 11.10
查看>>
vim 中的查找
查看>>
dev使用3
查看>>
ServerVariables变量列表
查看>>
Cocos2d-x for android 使用Box2d报错解决
查看>>
搜狗输入法的评判
查看>>
九、oracle 事务
查看>>
几种线性时间排序
查看>>
08 django模型系统(一)
查看>>
我对 前端 Js 开发方式 架构方向 的 一些看法
查看>>
Linux shell 自启动脚本写法
查看>>
How Many Tables HDOJ
查看>>
DataTable转换成List
查看>>