Struts2的处理流程和对Action的管理方式

简介:

首先我们先来看一张我画的草图,如下:

wKioL1PLLkeyV34vAADCmZwYEYQ602.jpg


接下来,是一个web.xml配置文件的常用代码

1
2
3
4
5
6
7
8
< filter >
         < filter-name >struts2</ filter-name >
         < filter-class >org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</ filter-class >
     </ filter >
     < filter-mapping >
         < filter-name >struts2</ filter-name >
         < url-pattern >/*</ url-pattern >
     </ filter-mapping >


ok,


1
StrutsPrepareAndExecuteFilter

    是Struts2核心控制器,它只负责拦截由<url-pattern>/*</url-pattern>指定的所有用户的请求

当用户请求到达时,系统会根据web.xml中配置Filter过滤用户的请求,默认情况下,如果用户的访问路径不带有后缀或者是以.action的后缀作为结尾,

这时候请求会转发给Struts2框架处理,否则Struts2会滤过这个请求处理,当请求转入Struts2框架时会先经过一系列的拦截器,然后再到Action。


    与Struts1不同的是,Struts2会对每个请求都会产生一个Action,所以Struts2是线程安全的,属于原型设计模式。

Struts1中的Action创建出来之后会放在缓冲中,属于单例设计模式,在应用生命周期之内只会存在一个Action。


    在面试过程中,经常有面试官会问到struts2和struts1之间的Action的管理会有什么区别?如上!









本文转自 小夜的传说 51CTO博客,原文链接:http://blog.51cto.com/1936625305/1440453,如需转载请自行联系原作者
目录
相关文章
|
存储 程序员 C语言
动态存储方式与静态存储方式
在编程中,数据的存储方式对于程序的性能、内存使用以及代码的可维护性都有着至关重要的影响。其中,动态存储方式和静态存储方式是两种常见的数据存储方式。本文将探讨这两种存储方式的区别、应用场景,并附上相应的代码示例。
633 1
|
机器学习/深度学习 算法 搜索推荐
阿里云机器学习平台PAI与香港大学合作论文入选INFOCOM 2022,有效减少大规模神经网络训练时间
近日,阿里云机器学习平台 PAI 与香港大学吴川教授团队合作的论文”Efficient Pipeline Planning for Expedited Distributed DNN Training”入选INFOCOM(IEEE International Conference on Computer Communications) 2022,论文提出了一个支持任意网络拓扑的同步流水线并行训练算法,有效减少大规模神经网络的训练时间。
阿里云机器学习平台PAI与香港大学合作论文入选INFOCOM 2022,有效减少大规模神经网络训练时间
|
6月前
|
Android开发
CountDownTimer的简单使用
本示例展示了如何在Android中加载一个界面并延迟5秒后关闭。通过`CountDownTimer`工具类实现倒计时功能,每秒更新文本显示剩余时间,如“Skip activity after X”。倒计时结束时,自动跳转或更新为“Skip activity”。代码利用了`CountDownTimer`的构造方法,设置总时长5000毫秒和间隔1000毫秒,结合`onTick`与`onFinish`回调完成逻辑。
151 1
|
10月前
|
存储 Java 数据库连接
时序数据库TDengine 3.3.5.0 发布:高并发支持与增量备份功能引领新升级
TDengine 3.3.5.0 版本正式发布,带来多项更新与优化。新特性包括提升 MQTT 稳定性和高并发性能、新增 taosX 增量备份与恢复、支持 JDBC 和 Rust 连接器 STMT2 接口、灵活配置 Grafana Dashboard 等。性能优化涵盖查询内存管控、多级存储迁移、强密码策略等,全面提升时序数据管理的效率和可靠性。欢迎下载体验并提出宝贵意见。
295 5
|
存储 缓存 Linux
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解
|
Arthas Java 测试技术
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
Java字节码文件、组成、详解、分析;常用工具,jclasslib插件、阿里arthas工具;如何定位线上问题;Java注解
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
|
编解码 缓存 算法
视频帧里的I帧、P帧、B帧是什么?
I帧、P帧、B帧是视频编码中的基本概念。I帧是帧内编码帧,无需参考其他帧即可解码;P帧是前向预测编码帧,基于前一帧解码;B帧是双向预测编码帧,基于前后帧解码。IDR帧是一种特殊的I帧,用于即时解码刷新,防止错误传播。GOP(Group of Pictures)是一组连续的画面,第一个帧为I帧,gop_size设置越大,画质越好,但解码延迟增加。OpenGOP允许GOP间的帧依赖,而ClosedGOP则不允许。DTS(解码时间戳)和PTS(显示时间戳)分别用于解码和显示时间控制。
|
存储 缓存 定位技术
如果遇到网络延迟问题,有哪些方法可以快速解决以保证视频源同步?
如果遇到网络延迟问题,有哪些方法可以快速解决以保证视频源同步?
|
前端开发 容器
解锁CSS定位奥秘,从迷茫到精通,让你的网页布局“稳如老狗”,引领前端新潮流!
【8月更文挑战第23天】本文深入探讨了Web前端开发中CSS定位的三大基石:相对定位、绝对定位与固定定位。通过具体示例,展示了各种定位方式的特点及应用场景。相对定位可在不影响布局的情况下微调元素位置;绝对定位使元素完全脱离文档流,适用于精确控制位置的需求;固定定位则确保元素始终固定于浏览器窗口特定位置,不受页面滚动影响。这些技巧对于实现复杂网页布局至关重要。
248 0
|
前端开发 搜索推荐 UED
HTML基础-文本格式化标签:美化网页内容
【6月更文挑战第1天】本文介绍了HTML的文本格式化标签,包括`<b>`、`<strong>`、`<i>`、`<em>`、`<u>`、`<s>`、`<mark>`、`<small>`、`<sub>`和`<sup>`等,强调了语义化使用和避免常见错误的重要性。示例代码展示了这些标签的用法,帮助提升网页内容的可读性和吸引力。
520 3