首页技术简述struts框架的工作流程?简述struts2的体系结构

简述struts框架的工作流程?简述struts2的体系结构

编程之家2026-06-08945次浏览

大家好,感谢邀请,今天来为大家分享一下简述struts框架的工作流程的问题,以及和简述struts2的体系结构的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

简述struts框架的工作流程?简述struts2的体系结构

Struts的工作流程

Struts工作流程

Web应用启动时加载并初始化ActionServlet。ActionServlet从struts-config.xml中读取配置信息,把它们存放到各种配置对象中。当ActionServlet接收到一个请求时,流程如下:

1.检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。

2.如果ActionForm实例不存在,就创建一个ActionForm对象,把提交的表单数据保存到ActionForm中。

3.根据配置,决定是否需表单验证,若需要,则调用ActionForm的validate方法。

4.如果ActionForm的validate方法返回null或返回不包含ActionMessage的ActionErrors对象,则表示验证成功。

简述struts框架的工作流程?简述struts2的体系结构

5.ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Action,如果Action不存在则先创建这个实例,然后调用Action的execute方法。

6.Action的execute方法返回一个ActionForward对象,ActionServlet再把请求转发给ActionForward对象指向的JSP组件。

7.ActionForward指向的JSP组件生成动态网页,返回给用户。

struts2的主要工作流程,处理方式

给LZ说一下struts2的主要工作流程吧,你可以下载一下他的流程图,首先我们有个请求request进入,会首先走ActionContextClearup清空值栈等,但是会留下我们的session和setgetAttribute等,然后会走一下OtherFilter,其他的一些过滤器什么的,然后就会走到我们的filterDispathcer总控,会询问ActionMapping是否此请求需要struts2处理,如果需要,走到ActionProxy代理类,其次,根据ConfigurationManger配置管理找到struts配置文件,然后才是走到真正需要做事的地方,ActionInvocation会依次走我们的拦截器,拦截器走的时候回去值栈中取值,就是通过taglib放到页面上去,走action再走对应result,最后生成相应返回回去。

给LZ两个图吧,第一个图是具体的点击新增按钮后的一系列处理,第二个图是详细的struts2的流程

struts2的工作流程

在Struts2框架中的处理大概分为以下几个步骤:

简述struts框架的工作流程?简述struts2的体系结构

1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求

2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)

3、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action

4、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy

5、ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类

6、ActionProxy创建一个ActionInvocation的实例。

7、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。

8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。

在表示的过程中可以使用Struts2框架中继承的标签。在这个过程中需要涉及ActionMapper。

扩展资料:

应用流程注解

当Web容器收到请求(HttpServletRequest)它将请求传递给一个标准的的过滤链包括(ActionContextCleanUp)过滤器。

经过Other filters(SiteMesh,etc),需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求哪个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象。

FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager)从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象。

ActionInvocation在调用Action之前会依次的调用所用配置拦截器(Interceptor N)一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个Result Result会调用一些模版(JSP)来呈现页面。

拦截器(Interceptor N)会再被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)被返回在web.xml中配置的那些过滤器和核心控制器(FilterDispatcher)。

参考资料:百度百科-Struts 2

关于简述struts框架的工作流程到此分享完毕,希望能帮助到您。

php工程师薪资,高级工程师年薪多少html表单怎么做(html在线编辑器网页)