Struts2的拦截器,Struts2的执行流程,图解+详解(底层代码)以及 自定义拦截器(配置和使用)
发布日期:2021-06-29 15:01:59
浏览次数:3
分类:技术文章
本文共 1414 字,大约阅读时间需要 4 分钟。
一、拦截器的概述
1、什么是拦截器
Interceptor:拦截器,起到的是拦截Action的作用
Filter:过滤器,从客户端向服务器发送的请求。
Interceptor:拦截器,拦截的是客户端对Action的访问。更加细粒度化的拦截。(拦截Action当中具体的方法)。Struts2框架核心的功能是依赖拦截器实现的。
2、Struts2的执行流程
官方Struts2执行流程图
官方图的原码详解 客户端向服务器发送一个Action的请求,执行核心过滤器(doFilter)方法。 在这个方法当中,调用executeAction()方法, 在这个方法内部调用的是disoatcher.serviceAction(); 在这个方法的内部创建了一个Action的代理, 最终执行的是Action的代理当中execute(); 在这个代理中执行execute()方法中调用ActionInvocation的invoke方法。 在这个方法的内部递归执行一组拦截器(完成部分功能), 如果没有下一个拦截器,就会执行目标Action, 根据Action返回的结果来进行页面的跳转。二、自定义拦截器:
1、搭建Struts2的环境
web.xml
2、编写拦截器的类
编写一个类实现interceptor接口或者继承AbstractInterceptor类。
(1)自定义拦截器一:继承AbstractInterceptor类
编写两个拦截器
/* * 自定义拦截器一 */public class InterceptorDemo1 extends AbstractInterceptor { @Override public String intercept(ActionInvocation invocation) throws Exception { // TODO Auto-generated method stub System.out.println("InterceptorDemo1执行了。。。。。"); String obj = invocation.invoke(); System.out.println("InterceptorDemo1执行结束了"); return obj; }}
/* * 自定义拦截器一 */public class InterceptorDemo2 extends AbstractInterceptor { @Override public String intercept(ActionInvocation invocation) throws Exception { // TODO Auto-generated method stub System.out.println("InterceptorDemo2执行了。。。。。"); String obj = invocation.invoke(); System.out.println("InterceptorDemo2执行结束了"); return obj; }}
3、对拦截器进行配置
(1)定义拦截器进行配置
引入拦截器(一旦引入自定义拦截器,以下默认拦截器栈的拦截器就不执行了,所以需要手动设置默认的拦截器) 测试 结果及执行顺序(2)定义一个拦截器栈的配置
转载地址:https://code100.blog.csdn.net/article/details/106957526 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月16日 05时52分47秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
安全工程师必知:常见Java漏洞有哪些?
2019-04-29
数据科学中的计量经济学技术
2019-04-29
突破边界:数据科学、数据工程和技术的未来
2019-04-29
一切有迹可循!优秀程序员的9个早期迹象
2019-04-29
在后台的python:众多程序员无法攻克的难题
2019-04-29
未来战争:装载AI的美国空军侦察机已经试飞……
2019-04-29
屡战屡败:为什么你会觉得学习编程很难?
2019-04-29
“狙击”特斯拉:电动汽车后起之秀的最后一战
2019-04-29
软件测试的未来:2021年需要关注的15大软件测试趋势
2019-04-29
六大基本AI术语:如何做好人工智能咨询服务?
2019-04-29
讲真,如果手机有灵魂,那就是“备忘录”
2019-04-29
端到端加密:WhatsApp不会去读取你的信息,它不需要……
2019-04-29
国会大厦骚乱,与一家极不可靠的面部识别公司……
2019-04-29
解锁宇宙密码:为什么是3、6、9?
2019-04-29
数据可视化中的格式塔心理学
2019-04-29
电动汽车的“专属危险”:网络威胁问题不容小觑
2019-04-29
短暂的告别,马上再回来
2019-04-29
统治50年:为什么SQL在如今仍然很重要?
2019-04-29
测试是一场竞争,而数据每次都会获得胜利
2019-04-29
读心的测谎系统:究竟是骗子还是个天才?
2019-04-29