今天来讲解一下Struts原理:
使用Struts开发的时候,只需要关注两类组件:Action Bean组件和Form Bean组件。这样还不够,还需要了解Struts核心组件和内部原理,才能保证我们在编写Struts应用时轻松解决各种问题。
Struts核心组件和运行过程:
Struts应用中包含3个组件:控制器组件、模型组件个视图组件,控制器组件包括ActionServlet(核心控制器)、自定义Action(代表一个用户操作)。
模型组件包括定义和实现业务逻辑的接口和类。
视图组件包括JSP页面、ActionForm和Struts标签。
下面结合struts的运行过程介绍struts核心组件的职能和作用。
ActionServlet是struts最核心的组件。在Web容器启动的时候,ActionServlet被初始化,加载
struts-config.xml配置文件(这也是为什么当struts配置文件修改的时候需要重新启动Web容器)。Struts处理请求的过程如下:
1、当客户端浏览器发起请求到ActionServlet时,ActionServlet首先对请求进行一系列处理:根据请求的路径和配置信息找到对应的Action Bean 和Form Bean。
2、在确定将要调用Action Bean和对应的Form Bean后,就将请求中包含的值填充到Form Bean中(Action可以不关联任何ActionForm,所以这一步是可选的)。在调用Action的execute方法前,ActionServlet还需要准备好ActionMapping参数,ActionMapping中包含了该Action的配置信息。
3、然后Struts将请求分发至相应的Action Bean处理,ActionMapping参数、ActionForm参数、request和response都作为参数传给处理请求的Action Bean的execute方法。
4、Action调用业务逻辑方法,得到返回值,并返回ActionForward对象。
5、控制权重新回到ActionServlet,AcrionServlet根据Action返回的ActionForm对象转发到相应的JSP页面。
6、处理结果返回给浏览器。
需要注意的三点如下:
1)ActionServlet将控制器转到页面的时候采用的是转发方式(request.getRequestDispatcher(url).forward(request,response);),所以转发到页面的request和Action方法参数中的request是同一个请求,数据可以通过request对象的attribute属性传递。
2)ActionForm根据对象Action的score属性配置不同而生命周期有所不同。
3)当需要采用重定向的方式转到新的页面的时候,可以在Action代码中使用“request.sendRedirect(url);”语句,并返回null;
分享到:
相关推荐
这个"struts核心jar包.zip"文件包含了Struts框架的核心库,这些库文件是开发和运行Struts应用程序所必需的。下面我们将详细探讨Struts框架的一些关键知识点: 1. **ActionServlet**:这是Struts框架的中心控制器,...
在本压缩包中包含的是Struts 2.5.18版本的核心库,这是Struts框架运行所必需的组件。 Struts 2的核心jar文件主要包含了以下几个关键组件: 1. **`struts2-core.jar`**:这是Struts 2框架的核心库,包含了Action、...
最新版的Struts2核心开发包提供了该框架的核心组件,旨在简化开发过程并提高效率。下面将详细介绍这些核心包以及它们在Struts2中的作用。 1. **struts2-core-2.3.7.jar**:这是Struts2框架的核心库,包含了框架的...
1. **Action类和ActionSupport**: Action是Struts2的核心组件,负责处理用户请求并执行业务逻辑。ActionSupport是Action的基类,提供了默认的行为,如错误处理和国际化支持。 2. **Interceptor(拦截器)**: 拦截器...
总结,Struts2作为Java web开发的主流框架之一,其核心技术包括Action、Interceptor、Value Stack、OGNL等,通过这些组件和机制,开发者能够高效地构建MVC应用,实现业务逻辑与表现层的分离,同时具备良好的扩展性...
Struts2的核心组件包括Action、Result、Interceptor等,它们协同工作,使得业务逻辑与表现层分离,提高了代码的可重用性和可测试性。 标题中的"struts2核心包"指的是Struts2框架的基础组件,其中包括`struts2-core-...
首先,我们来看`xwork`,它是Struts2的核心组件之一,负责业务逻辑的执行。XWork提供了一种强大的Action机制,允许开发者定义和执行动作,同时支持拦截器(Interceptor)的使用,拦截器可以实现如权限验证、日志记录...
该压缩包文件"struts2.2.3加载的核心jar包"中包含了一系列用于运行和开发Struts2应用的必需库。这些jar包提供了框架的基础组件和服务,下面将详细介绍其中的关键知识点: 1. **Struts2核心库**:struts2-core.jar ...
1. **Action类**:Action是业务逻辑的载体,它是处理用户请求并返回结果的核心组件。开发者通常需要继承`com.opensymphony.xwork2.ActionSupport`或自定义Action接口来实现业务逻辑。 2. **配置管理**:Struts2的...
1. **Action**:这是Struts2的核心组件,负责处理用户请求。Action接口定义了处理请求的方法,开发者可以自定义Action类,实现特定的业务逻辑。`org.apache.struts2.dispatcher.ng.ExecuteOperations`和`org.apache....
2. **核心组件** - **Action类**:是业务逻辑的执行者,每个Action对应一个用户操作,负责处理请求并返回结果。 - **配置文件**:通常为struts.xml,定义Action的映射、结果类型、拦截器等。 - **Interceptor...
这个"Struts2框架核心jar包"是Struts2框架的核心组件,包含了实现Struts2功能所必需的类库和资源。 1. **Struts2框架结构**: - **Action**:Struts2的核心是Action类,它是业务逻辑处理的主要载体。用户请求被...
Struts核心API宝典是一本全面深入探讨Struts框架核心组件和技术的参考资料,它旨在帮助开发者熟练掌握这一经典的Java Web开发框架。Struts是Apache软件基金会下的一个项目,以其MVC(模型-视图-控制器)架构模式为...
Struts2的核心组件包括以下几个部分: 1. **Action类**:这是业务逻辑的载体,负责处理用户请求。每个Action类对应一个URL,负责执行特定的操作,并返回一个结果。 2. **ActionContext**:它提供了与当前请求相关...
这个核心jar包是Struts2框架的基础,包含了实现Struts2功能的关键组件和类库。以下是关于Struts2核心jar包的一些详细知识点: 1. **Action和拦截器(Interceptors)**: - Struts2中的Action是业务逻辑的载体,它...
这个“struts2核心jar包”包含了Struts2框架的核心组件,使得开发者能够快速搭建应用并实现业务逻辑。 在Struts2的核心jar包中,主要包括以下几个关键组件: 1. **Action类**:它是业务逻辑的载体,负责处理用户的...
1. **Struts2核心组件**:主要包括以下几个关键部分: - `struts2-core.jar`:框架的基础,包含了Action、Result、Interceptor等核心类。 - `xwork-core.jar`:XWork框架是Struts2的基础,提供了对象容器、类型...
这个"struts-2.5.12-min 精简的核心li包"是Struts 2框架的一个轻量级版本,包含了运行Struts 2应用程序所必需的基础组件。 首先,我们来看一下Struts 2框架的主要组成部分: 1. **Action**:在Struts 2中,Action...