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. Codeforces Round #412 B. T-Shirt Hunt

    B. T-Shirt Hunt time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  2. HDU 6162 Ch’s gift

    Mr. Cui is working off-campus and he misses his girl friend very much. After a whole night tossing a ...

  3. 13 Zabbix Item类型之Zabbix ODBC类型

    点击返回:自学Zabbix之路 13 Zabbix Item类型之Zabbix ODBC类型 ODBC是C语言开发的.用于访问数据库的中间件接口 . zabbix支持查询任何ODBC支持的数据库.za ...

  4. 【BZOJ2246】[SDOI2011]迷宫探险(搜索,动态规划)

    [BZOJ2246][SDOI2011]迷宫探险(搜索,动态规划) 题面 BZOJ 洛谷 题解 乍一看似乎是可以求出每个东西是陷阱的概率,然而会发现前面走过的陷阱是不是陷阱实际上是会对当前状态产生影响 ...

  5. 【BZOJ1822】[JSOI2010]冷冻波(二分,网络流)

    [BZOJ1822][JSOI2010]冷冻波(二分,网络流) 题面 BZOJ 洛谷 题解 先预处理每个巫妖可以打到哪些小精灵,然后二分答案,网络流判定即可. #include<iostream ...

  6. WC 2019 记

    “在下一次挑战来临时,还能否有足够的勇气和力量重新提起这被震掉两次的剑呢?” 难得来参加一次$WC$,这是第一次来,也很有可能是最后一次了(我也好希望有下一次啊,哪怕这可能再渺小,如同浩瀚星空中一丝辰 ...

  7. Spring的FactoryBean使用

     Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean.工厂Bean跟普通Bean不同,其返回的对象不是指定类的一个实例,其返回的是该工厂Bean的g ...

  8. A1091. Acute Stroke

    One important factor to identify acute stroke (急性脑卒中) is the volume of the stroke core. Given the re ...

  9. (Catalan数 大数) Game of Connections poj2084

    Language: Game of Connections Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8837 Accept ...

  10. SQL Server 2012/2016/2017 新增函数

    /************************************************************** SQL Server 2012 新增的函数 ************** ...