Struts2的体系与Struts1体系的差别非常大,因为Struts2使用了WebWork的设计核心,而不是Struts1的设计核心。Struts2中大量使用拦截器来处理用户的请求,从而允许用户的业务逻辑控制器与Servlet API分离。
Struts2框架的大概处理流程如下:
1、加载类(FilterDispatcher)
2、读取配置(struts配置文件中的Action)
3、派发请求(客户端发送请求)
4、调用Action(FilterDispatcher从struts配置文件中读取与之相对应的Action )
5、启用拦截器(WebWork拦截器链自动对请求应用通用功能,如验证)
6、处理业务(回调Action的execute()方法)
7、返回响应(通过execute方法将信息返回到FilterDispatcher)
8、查找响应(FilterDispatcher根据配置查找响应的是什么信息如:SUCCESS、ERROR,将跳转到哪个jsp页面)
9、响应用户(jsp--->客户浏览器端显示)
10、struts2标签库(相比struts1的标签库,struts2是大大加强了,对数据的操作功能很强大)
附图
Struts 2体系结构
其中包括ActionContextCleanUp过滤器,以及其他可能存在的过滤器,如SiteMesh。接着,请求会被传递给FilterDispatcher,这是核心控制器,它根据ActionMapper来决定应执行哪个Action。ActionMapper会返回一个包含Action详细信息的ActionMapping对象。
struts2的体系结构
Struts2的体系与Struts1体系的差别非常大,因为Struts2使用了WebWork的设计核心,而不是Struts1的设计核心。Struts2中大量使用拦截器来处理用户的请求,从而允许用户的业务逻辑控制器与Servlet API分离。Struts2框架的大概处理流程如下:1、加载类(FilterDispatcher)2、读取配置(struts配置文件中的Action)3、派...
Struts2的核心工作原理
Struts 2框架由3个部分组成:核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。在这3个部分里,Struts 2框架提供了核心控制器FilterDispatcher,而用户需要实现业务控制器和业务逻辑组件。2.核心控制器:FilterDispatcher FilterDispatcher是Struts 2框架的核心控制器,该控制器作为一个Filter运行...
解释下strust2是什么
Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可...
帮我介绍下Struts 2的运行原理 下面附图 谢谢
struts2框架的执行流程:1)用户发起请求(.action结尾的请求表示请求一个Action)2)struts2框架的主控器(FilterDispatcher)接收用户发起的请求,然后判断这个请求交给Action处理还是交给web组件处理.如果请求的Action或者web组件不存在,那么出现404错误.在整个处理 过程中需要一个辅助对象:Action映射器(ActionMapper)....
关于CVE-2021-31805 Apache Struts2 远程代码执行漏洞,你了解多少...
修改Maven pom文件,将Struts2版本更改为2.5.26。在前端jsp文件中,通过%{payload}修改name属性标签,实现数据赋值。调整action类结构,确保能够正确处理修改后的请求参数。为了更好地理解漏洞产生的原理,需要对Apache Struts2的架构和OGNL语法有所了解。Struts2架构概述包括客户端提交请求、核心处理器协调...
struts2和strtus1的主要区别
通过上面对Struts2体系结构的了解,我们发现Struts2对Struts1进行了巨大的改进。主要表现在如下几个方面: 在Action的实现方面:Struts1要求必须统一扩展自Action类,而Struts2中可以是一个普通的POJO。 线程模型方面:Struts1的Action工作在单例模式,一个Action的实例处理所有的请求。Struts2的Action是一个...
Struts2的详细工作原理?
Struts2工作流程:1.客户端(Client)向Action发用一个请求(Request)2.Container通过web.xml映射请求,并获得控制器(Controller)的名字 3.容器(Container)调用控制器(StrutsPrepareAndExecuteFilter或FilterDispatcher)。在Struts2.1以前调用FilterDispatcher,Struts2.1以后调用StrutsPrepareAndExecuteFilter ...
struts和struts2的区别
基于以上介绍可以看的出,Struts2体系结构与Struts1的体系结构有很大的差别,Struts1是使用ActionServlet做为其中心处理器,Struts2则使用一个拦截器(FilterDispatcher)做为其中心处理器,这样做的一个好处就是将Action类和Servlet API进行了分离。Struts2的简单处理流程如下:1)浏览器发送请求 2)中心处理...
struts1和struts2的区别??
一、主体不同 1、struts1:是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。2、struts2:Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。二、框架不同 1、struts1:通过...