0.拦截器的调用原理:

  拦截器是一个继承了序列化接口的普通接口。其工作原理是讲需要被拦截的对象作为参数传到intercept()方法内,在方法内部对此对象进行处理之后再执行原方法。intercept(ActionInvocation invocation)是拦截处理的方法。

Interceptor .java
public interface Interceptor extends Serializable {

    /**
* Called to let an interceptor clean up any resources it has allocated.
*/
void destroy(); /**
* Called after an interceptor is created, but before any requests are processed using
* {@link #intercept(com.opensymphony.xwork2.ActionInvocation) intercept} , giving
* the Interceptor a chance to initialize any needed resources.
*/
void init(); /**
* Allows the Interceptor to do some processing on the request before and/or after the rest of the processing of the
* request by the {@link ActionInvocation} or to short-circuit the processing and just return a String return code.
*
* @param invocation the action invocation
* @return the return code, either returned from {@link ActionInvocation#invoke()}, or from the interceptor itself.
* @throws Exception any system-level error, as defined in {@link com.opensymphony.xwork2.Action#execute()}.
*/
String intercept(ActionInvocation invocation) throws Exception; }

1.自定义拦截器步骤

I. 定义一个拦截器的类

> 可以实现 Interceptor 接口
    > 继承 AbstractInterceptor 抽象类

 

1.拦截器

 package Action;

 import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor; public class PrivelegeInterceptor 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 arg0) throws Exception { //如果用户登录了就会有user属性(Session里面存一个session属性)
Object user = arg0.getInvocationContext().getSession().get("user");
// 上面可能是系统权限的管理
String result="";
System.out.println(user);
if(user!=null){
// 当满足条件时,让其执行,相当于是放行
arg0.invoke();
}else {
result = "logon";
ActionContext.getContext().put("msg", "您没有权限管理");
}
System.out.println(result);
return result;
}
}

2.被拦截的Action

 package Action;

 import com.opensymphony.xwork2.ActionContext;

 public class UserAction {

     public String addUI(){
ActionContext.getContext().put("msg", "成功执行了addUI操作");
System.out.println("执行addui操作");
return "success";
} public String update(){
ActionContext.getContext().put("msg", "成功执行了update操作");
System.out.println("执行update操作");
return "success";
}
}

3.JSP页面(主页面,也就是开始时要访问Action的页面)

 <%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%-- <%
session.setAttribute("user", "uuuu");
%> --%>
Success
${msg }
<a href="/struts2interceptor/user_addUI.action">addui</a>
<a href="/struts2interceptor/user_update.action">update</a>
</body>
</html>

msg.jsp   也就是被拦截到没有权限时要去的页面

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
${msg }
</body>
</html>

II. 在 struts.xml 文件配置.  

<?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>
<!--
package的名字必须唯一!只能拦截.action请求
默认值:class:com.opensymphony.xwork2.ActionSupport
method:execute
result的name属性:success 方法中返回success即可跳转到结果对应的页面 --> <!-- 第一个package命名空间 -->
<package name="intercept" namespace="/" extends="struts-default"> <!-- 拦截器 -->
<interceptors>
<!-- 定义刚才的拦截器 -->
<interceptor name="permission" class="Action.PrivelegeInterceptor"></interceptor>
<!-- 定义拦截器栈 -->
<interceptor-stack name="permissionStack">
<!-- 拦截器栈里面可以引用另外一个拦截器,也可以引用另外一个拦截器栈 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="permission"></interceptor-ref>
</interceptor-stack>
</interceptors> <action name="user_*" class="Action.UserAction" method="{1}">
<result>/index.jsp</result>
<result name="logon">/msg.jsp</result>
<!-- 使用拦截器栈 -->
<interceptor-ref name="permissionStack"></interceptor-ref>
</action>
</package> </struts>

第二种使用拦截器的方式是:(在前面定义一下拦截器,然后在Action中使用新定义的拦截器与默认的拦截器)

    <interceptors>

         <interceptor name="hello" class="com.atguigu.struts2.interceptors.MyInterceptor"></interceptor>

     </interceptors>

     <action name="testToken" class="com.atguigu.struts2.token.app.TokenAction">
<interceptor-ref name="hello"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<result>/success.jsp</result>
<result name="invalid.token">/token-error.jsp</result>
</action>

 III. 注意: 在自定义的拦截器中可以选择不调用 ActionInvocation 的 invoke() 方法. 那么后续的拦截器和 Action 方法将不会被调用.Struts 会渲染自定义拦截器 intercept 方法返回值对应的 result

这种经常用于权限管理,例如上面的拦截器,没有权限时,返回的是logon,自动渲染返回值为设置的值,然后根据返回值在Action配置中跳转到响应的页面。

aaarticlea/png;base64,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" alt="" />

IV.测试

1.没权限的测试,即session中不存在user

aaarticlea/png;base64,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" alt="" />

2.有权限的测试,即session中存在user

aaarticlea/png;base64,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" alt="" />

结果:

aaarticlea/png;base64,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" alt="" />

Struts2 拦截器 和 过滤器 的区别:

①、过滤器依赖于 Servlet 容器,而拦截器不依赖于 Servlet 容器。

②、Struts2 拦截器只能对 Action 请求起作用,而过滤器则可以对几乎所 有请求起作用。

③、拦截器可以访问 Action 上下文(ActionContext)、值栈里的对象 (ValueStack),而过滤器不能.

④、在 Action 的生命周期中,拦截器可以多次调用,而过滤器只能在容器 初始化时被调用一次。

Struts自定义拦截器&拦截器工作原理的更多相关文章

  1. 自己打断点走的struts流程&拦截器工作原理

    ①. 请求发送给 StrutsPrepareAndExecuteFilter ②. StrutsPrepareAndExecuteFilter 判定该请求是否是一个 Struts2 请 求(Actio ...

  2. 分享知识-快乐自己:Struts2框架 工作原理及执行流程图(拦截器的使用)

    Struts2 架构图: 1):提交请求 客户端通过 HttpServletRequest 向 Servlet (即Tomcat)提交一个请求. 请求经过一系列的过滤器,例如图中的 ActionCon ...

  3. Struts 2知识回顾----拦截器(Intercept)总结

    什么是Struts 2拦截器? 从软件构架上来说,拦截器是实现了面向方面编程的组件.它将影响了多个业务对象的公共行为封装到一个个可重用的模块,减少了系统的重复代码,实现功能的高度内聚,确保了业务对象的 ...

  4. Java三大器之拦截器(Interceptor)的实现原理及代码示例

    1,拦截器的概念    java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了 ...

  5. spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,guava限流,定时任务案例, 发邮件

    本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...

  6. SpringMVC自定义多个拦截器执行顺序

    一.正常流程下的拦截器(全部放行) 1.springMVC中拦截器实现这个接口HandlerInterceptor 第一个拦截器 HandlerInterceptor1   public class ...

  7. struts2拦截器配置;拦截器栈;配置默认拦截器;拦截方法的拦截器MethodFilterInterceptor;完成登录验证

    struts2.xml 内容 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts ...

  8. Struts2 拦截器—拦截action

    对于拦截器的基本使用这里我就懒得打字了,我这里就讲下如何用 Struts2 拦截器 拦截action.这是我个人的想法,如果有什么不对的,或者你们有什么更好的方法.请多多留言! 拦截器的默认拦截的方法 ...

  9. python学习Day14 带参装饰器、可迭代对象、迭代器对象、for 迭代器工作原理、枚举对象、生成器

    复习 函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.返回内部函数对象---->  延迟执行, 开放封闭原则: 功能可以拓展,但源代 ...

随机推荐

  1. Catenyms POJ - 2337(单词+字典序输出路径)

    题意: 就是给出几个单词 看能否组成欧拉回路或路径  当然还是让输出组成的最小字典序的路 解析: 还是把首尾字母看成点   把单词看成边 记录边就好了 这题让我对fleury输出最小字典序又加深了一些 ...

  2. How to Add Trust Sites into IE before IE10 through Group Policy

    Due to IE10 published, I'll conclude the methods that how to add trust sites in to IE of the version ...

  3. luogu4849 寻找宝藏 (cdq分治+dp)

    设f[i]是已经走到i号点的值. 先要给第四维离散化.然后去重 第一维排序,第二维cdq分治,第三维cdq分治,第四维树状数组,找到满足j(x,y,z,w)<=i(x,y,z,w)的j,给i统计 ...

  4. 斯坦福大学公开课机器学习:梯度下降运算的特征缩放(gradient descent in practice 1:feature scaling)

    以房屋价格为例,假设有两个特征向量:X1:房子大小(1-2000 feets), X2:卧室数量(1-5) 关于这两个特征向量的代价函数如下图所示: 从上图可以看出,代价函数是一个又瘦又高的椭圆形轮廓 ...

  5. SQL 运算符

    运算符是一个保留字或字符,主要用于连接WHERE后面的条件. 一.算数运算符 运算符 描述 + 加法 把运算符两边的值相加 - 减法 左操作数减去右操作数 * 乘法 把运算符两边的值相乘 / 除法 左 ...

  6. 安装office自定义项,安装期间出错

    由于安装vs2013,导致excel打开时出现问题 [解决方案] 开始菜单-excel图标处,右键快捷菜单-以管理员身份运行-新建空白工作簿 文件-选项-加载项-管理中选择COM加载项,转到-删除Lo ...

  7. non-member function cannot have cv-qualifier

    Q: non-member function unsigned int abs(const T&) cannot have cv-qualifier. template<typename ...

  8. chage命令

    chage命令是用来修改帐号和密码的有效期限. 语法 chage [选项] 用户名 选项 -m:密码可更改的最小天数.为零时代表任何时候都可以更改密码. -M:密码保持有效的最大天数. -w:用户密码 ...

  9. 20190313 org.apache.commons.lang3.builder.EqualsBuilder的两种典型用法

    org.apache.commons.lang3.builder.EqualsBuilder的两种典型用法 public boolean equals(Object obj) { if (obj == ...

  10. H5 localStorage sessionStorage

    localStorage 用于长久保存整个网站的数据,没有过期时间,除非手动去除. sessionStorage 会话存储,临时存储,当用户关闭浏览器窗口后,数据被删除. 共同方法 以 localSt ...