一个用户的请求是通ActionServlet来处理和转发的。那么,ActionServlet如何决定把用户请求转发给哪个Action对象呢?这就需要一些描述用户请求路径和Action衍射关系的配置信息了。在Struts中,这些配置映射信息都存储在特定的XML文件Struts- config.xml中。在该配置文件中,每一个Action的映射信息都通过一个<Action>元素来配置。
这些配置信息在系统启动的时候被读入内存,供Struts在运行期间使用。在内存中,每一个<action>元素都对应一个org.apache.struts.action.ActionMapping类的实例。
对于采用Struts框架的web应用,在web应用启动时就会加载并初始化ActionServlet,ActionServlet从struts- config.xml文件中读取配置信息,把它们存放到各个配置对象中,例如Action的映射信息存放在ActionMapping对象中。
当ActionServlet接收到一个客户请求时,将执行如下流程:
1.检索和用户请求相匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效信息。
2.如ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。
3.根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm的Validate()方法。
4.如果ActionForm的Validate()方法返回null或返回一个不包含ActionMessage的ActionErrors对象,就表示表单验证成功。
5.ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Action。如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法。
6.Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP组件。
7.ActionForward对象指向的JSP组件生成动态网页,返回给客户。
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=1074987
分享到:
相关推荐
这是一个详细的Struts工作流程图,里面包含JSP、java(Action、ActionForm等)类
1. 客户端发送一个请求,...2. ActionSevlet首先调用struts配置文件(struts-config.xml),如果有表单提交,需要自动填充ActionForm Bean(找struts配置文件的),根据请求分派给相应的Action(找struts配置文件的)。
虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts 1而言。Struts 2 与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度...
掌握MyEclipse开发工具的使用方法和技巧,掌握Struts框架开发的一般步骤,理解Struts框架的工作流程,加深理解Struts的MVC模型。
NULL 博文链接:https://ollevere.iteye.com/blog/1150639
学习STRUTS的好东西
jsp项目开发实录 jsp项目开发实录 Struts 实现 程序完整 Struts 实现 程序完整 Struts 实现 程序完整 Struts 实现 程序完整Struts 实现 程序完整Struts 实现 程序完整Struts 实现 程序完整Struts 实现 程序完整...
Struts2的工作流程及struts2配置文件中各属性的含义
java开发简单易懂的struts理论,适合初学者
这张流程图 深刻的描述了 struts2的执行流程 帮助了解Struts2
Struts的工作流程 DOC
struts和hibernate的工作流程详细
struts1的工作流程,初学者不错的资源
struts工作原理和开发流程,struts工作原理和开发流程,struts工作原理和开发流程
Struts开发指南之工作流程下图是Struts的工作流程,前边我们提到,所有的请求都提交给ActionServlet来处理。 ActionServlet是一个FrontController,它是一个标准的Servlet,它将request转发给RequestProcessor来...
底层,详细. Struts运行流程图(详细) Struts运行流程图(详细) Struts运行流程图(详细)