一、用自己的话简要阐述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组件生成动态网页,返回给客户;
分享到:
相关推荐
本教程“Struts Design and Programming: A Tutorial”专注于Struts1版本,由Budi Kurniawan编写,提供了一条深入理解并实践Struts1开发的路径。 **1. MVC模式** MVC模式是软件工程中的一种设计模式,它将应用程序...
文章“Comparing the Struts 1 and Struts 2 Web Application Frameworks”可能详细分析了这两个框架的各个方面,包括但不限于配置方式、开发效率、错误处理、性能测试等。通过阅读文档,开发者可以获取更多实用的...
这本书《Struts2 Design and Programming: A Tutorial》是开发者学习和掌握Struts2框架的宝贵资源,它深入探讨了Struts2的核心概念、设计模式以及最佳实践。 1. **Struts2框架基础** - **MVC模式**:Struts2基于...
"struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必不可少的组件。 "Struts2"可能是项目实例代码,包括Action类、视图...
这个资源"struts2+json"显然涉及到在Struts2框架下实现JSON(JavaScript Object Notation)数据交换,这是一种轻量级的数据交换格式,广泛用于前后端交互,特别是AJAX(Asynchronous JavaScript and XML)请求。...
### Struts 1 与 Struts 2 的关键区别 #### 一、Action类的设计模式差异 - **Struts 1**: 在Struts 1框架中,为了使用框架的功能,`Action`类需要继承自一个特定的抽象基类。这意味着所有的`Action`类都需要遵循一...
《Struts 2 设计与编程教程》是Budi Kurniawan撰写的一本深入探讨Struts 2框架的专业书籍,由Brainy Software出版社于2008年1月25日出版。该书共有576页,旨在提供理论解释和实际应用,帮助读者掌握如何在Struts开发...
因此,Struts 2其中的一个重要的功能(Feature)就是“First-class AJAX support - Add interactivity and flexibility with AJAX tags that look and feel just like standard Struts tags(大意:一流的AJAX支持...
本项目"struts2ajax"是基于Struts2框架,利用jQuery库实现的Ajax功能示例。jQuery是一个轻量级的JavaScript库,它简化了DOM操作、事件处理以及Ajax交互,使得开发者更容易实现复杂的前端效果和交互。 首先,我们...
StrutsConstants This class provides a central location for framework configuration keys used to retrieve and store Struts configuration settings. 异常错误概要 异常错误 说明 StrutsException A ...
2. **拦截器(Interceptor)**:拦截器是Struts2中的重要概念,它们允许开发者插入自定义的处理逻辑,如日志、权限检查等,这些逻辑可以在Action执行前后运行。 3. **配置灵活性**:Struts2的配置可以通过XML、注解...
- **版本说明**:本书《Struts2 Design and Programming: A Tutorial》由Budi Kurniawan编写,出版于2008年1月25日,全书共576页,ISBN-10为0-9803316-0-9,ISBN-13为978-0-9803316-0-8。该书覆盖了Struts 2.0版本的...
5. **Validation and Internationalization (i18n)**: Struts2包含内置的验证框架,允许开发者定义验证规则,并支持多语言。`struts2-validation-plugin`和相关的资源文件如`struts.properties`和`struts.xml`用于...
9. **struts2-spring-plugin.jar** 和 **struts2-cdi-plugin.jar**:这些插件分别用于Spring和CDI(Context and Dependency Injection)容器的集成,实现依赖注入和管理。 10. **struts2-validation-plugin.jar**:...
这个压缩包包含了Struts1.3和Struts2两个版本的API文档,以CHM(Compiled Help Manual)格式提供,这是一种常见的Windows帮助文档格式,便于用户离线查阅。 Struts1.3是Struts框架的第一个稳定版本,它在Web开发...
Struts2和iBATIS是两个非常重要的Java Web开发框架,它们在构建高效、可维护的Web应用程序中扮演着核心角色。Struts2是MVC(Model-View-Controller)设计模式的一种实现,用于处理用户请求和控制应用程序流程,而...
Struts2是在Webwork的基础上构建的,与它的前辈Struts1.x相比,虽然在大版本号上相同,但在配置和使用上有显著区别。 在开始之前,确保你有以下环境: 1. 开发工具:MyEclipse6 2. Web服务器:Tomcat6 3. Struts2...
在探讨“Struts2与JSON整合”的主题时,我们深入分析了如何在Struts2框架中集成JSON技术,实现前后端数据的高效交互。Struts2作为一款流行的Java Web开发框架,提供了丰富的功能来简化Web应用程序的开发过程。而JSON...
Struts2是一个强大的Java web应用程序框架,用于构建和部署可维护、高性能的MVC(Model-View-Controller)架构的应用程序。在Web开发中,图片上传和预览是常见的功能需求,尤其对于用户交互丰富的应用来说。Struts2...
Struts2是一个流行的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。在配置Struts2时,通常会使用一个名为`struts.xml`的配置文件,该文件定义了应用程序的行为和组件。为了在开发环境中获得更...