一、用自己的话简要阐述struts2的执行流程。
Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。 Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是WebWork的升级版本。基本简要流程如下:1、客户端浏览器发出HTTP请求。2、根据web.xml配置,该请求被FilterDispatcher接收。3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。6、返回HTTP响应到客户端浏览器。
二、struts的工作原理:
1、初始化,读取struts-config.xml、web.xml等配置文件(所有配置文件的初始化)
2、发送HTTP请求,客户端发送以.do结尾的请求
3、填充FormBean(实例化、复位、填充数据、校验、保存)
4、将请求转发到Action(调用Action的execute()方法)
5、处理业务(可以调用后台类,返回ActionForward对象)
6、返回目标响应对象(从Action返回到ActionServlet)
7、转换Http请求到目标响应对象(查找响应,根据返回的Forward keyword)
8、Http响应,返回到Jsp页面
三、说下Struts的设计模式:
MVC模式: web应用程序启动时就会加载并初始化ActionServler。用户提交表单时,一个配置好的ActionForm对象被创建,并被填入表单相应的数 据,ActionServler根据Struts-config.xml文件配置好的设置决定是否需要表单验证,如果需要就调用ActionForm的 Validate()验证后选择将请求发送到哪个Action,如果Action不存在,ActionServlet会先创建这个对象,然后调用 Action的execute()方法。Execute()从ActionForm对象中获取数据,完成业务逻辑,返回一个ActionForward对 象,ActionServlet再把客户请求转发给ActionForward对象指定的jsp组件,ActionForward对象指定的jsp生成动 态的网页,返回给客户。
-----------
<1>Struts的5个常用类有哪些?
所谓的5个常用类是:ActionServlet、ActionMapping、ActionForm、ActionForward、Action
在此也顺便讲一下Struts2的工作流程吧,虽说面试时很少有人问到,但是作为Struts2的使用者,是应该得了解一下:
在web应用启动时就会加载初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象当ActionServlet接收到一个客户请求时,将执行如下流程.
-(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;
-(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;
-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;
-(4)如果ActionForm的validate()方法返回或返回一个不包含ActionMessage的ActuibErrors对象, 就表示表单验证成功;
-(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的 Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;
-(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给 ActionForward对象指向的JSP组件;
-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;
分享到:
相关推荐
针对Struts1的网页版的Struts Design and Programming A Tutorial
因此,Struts 2其中的一个重要的功能(Feature)就是“First-class AJAX support - Add interactivity and flexibility with AJAX tags that look and feel just like standard Struts tags(大意:一流的AJAX支持...
StrutsConstants This class provides a central location for framework configuration keys used to retrieve and store Struts configuration settings. 异常错误概要 异常错误 说明 StrutsException A ...
Struts 2 Design and Programming A Tutorial
struts2.0入门资料,以及struts2.0 and freemaker的使用
为了让初学者更加清楚地了解到struts 1 and 2的区别,一下Word提供下载
struts1.3 and struts2 API 打包给大家,有兴趣可以下载....
Struts2 Design and Programming: A Tutorial.pdf 是一本介绍Struts2的设计和编程思想的书,也可以作为一本手册来使用
Log in and leave a comment on the appropriate page or file a ticket against the Struts 2 documentation. We're always looking for help! We've started planning the next version of Struts aka Struts 3 ...
struts2和ognl的一些知识,struts2中文教程,中文帮助文档
struts2与iBATIS结合的简单示例,数据库是mysql
ralasafe and struts2
struts2 and ajax,你可以试试两者之间的结合
最新struts2.1.8 src and lib最新struts2.1.8 src and lib最新struts2.1.8 src and lib最新struts2.1.8 src and lib最新struts2.1.8 src and lib最新struts2.1.8 src and lib最新struts2.1.8 src and lib
jsp for struts2 and spring.rar
NULL 博文链接:https://angkor.iteye.com/blog/1047736
ssh框架架包,struts2 and Sprint Lib~
详细的描述了struts2的各个知识点,详读可以提升strtus2的技能
前几天在网上下载一个struts2的helloword的例子,那个作者也真够缺德的,搞个错误的程序,害得我查了一天的程序错误。 最后发现竟然是struts.xml被写成啦sturts.xml。 碰见这样的问题先鄙视下提供例子的作者, 再...
struts1 and struts2 framework!