struts2的工作流程?

struts2的工作流程?,第1张

在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中出现404问题。

首先,Action找不到是主要的。其中Action找不到的原因很多。编译器问题,Struts配置问题。

编译器问题,重启一下myeclipse。

配置问题就需要注意Action标签的 Action类有没有返回结果,或者你使用了命名空间,URL错误。

你这个应该是命名空间的问题,基本上就是看看页面,看看Action,可以去掉命名空间namespace这个试试。

是不是软件出错了。建议重新下载安装看看,

myeclipse2017安装破解说明

注意!下载包中有myeclipse 2017 ci8 windows在线安装包下载以及离线安装包下载,附破解文件,小编建议使用离线下载包进行安装。

1、首先点击“myeclipse-2017-ci-8-online-installer-windows.exe”程序运行安装,点击“next”下一步

2、选择“我同意”许可协议,点击“next”下一步;

3、选择安装目录,您可以自行选择,小编建议默认,点击“下一步”;

4、选择您的电脑系统32/64位,小编的是64位,点击“next”下一步;

5、正在安装,文件有点大,请等待片刻;

6、安装完成

MyEclipse2017:http://www.xue51.com/soft/1207.html


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11861629.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存