Struts2入门配置与加载流程解析
"加载Struts2 SSH相关知识" Struts2是一个强大的MVC(Model-View-Controller)框架,常与Spring和Hibernate一起使用,形成SSH(Struts2、Spring、Hibernate)开发架构,用于构建企业级Java Web应用程序。在本文中,我们将探讨如何加载Struts2,以及它的工作流程和配置。 1. Struts2.0体系介绍 Struts2是Struts1的升级版,提供更灵活和强大的控制层。它基于拦截器模型,使得扩展和定制变得更加容易。Struts2的核心组件包括Action、Interceptor、Result和配置文件等。 2. 配置Struts2 要在项目中启用Struts2,首先需要在`web.xml`文件中配置Struts2的过滤器。过滤器名为`struts2`,其类为`org.apache.struts2.dispatcher.FilterDispatcher`。以下是一个示例配置: ```xml <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 3. Struts2的工作流程 - 客户端请求:用户通过浏览器向服务器发送HTTP请求。 - Filter接收请求:Struts2的Filter接收到请求后,开始处理。 - 查找Action:Filter根据配置文件(默认为`struts.xml`)在Struts2框架内寻找与请求路径匹配的Action。 - 调用Action处理:如果找到匹配的Action,Filter将请求转发给该Action执行业务逻辑。 - 返回结果:Action执行完毕后,会返回一个Result,这个Result通常对应一个视图(如JSP页面)。 - 呈现页面:Struts2根据Result的配置,将控制权交给对应的视图,生成HTML响应并返回给客户端。 4. Struts2的核心包 - `struts2-core`: 包含Struts2框架的核心组件。 - `commons-logging`: 用于日志记录,是Apache的一个通用日志库。 - `freemarker`: 提供模板引擎,用于生成动态HTML页面。 - `ognl`: Object-Graph Navigation Language,用于在Action和视图之间传递数据。 - `xwork`: 作为Struts2的基础,提供动作调度和类型转换等功能。 5. Struts2的配置文件 默认的配置文件是`struts.xml`,通常位于`src`目录下。这个文件用于定义Action、结果类型、拦截器栈等。例如,可以创建包(package)来组织Action,如下所示: ```xml <package name="default" namespace="/" extends="struts-default"> <action name="yourAction" class="your.package.YourAction"> <result name="success">/success.jsp</result> </action> </package> ``` 6. 包配置 Struts2框架使用包(package)来管理Action和其他组件。包是Action和其他配置的集合,可以通过继承和组合实现配置的复用。每个包都有自己的命名空间(namespace),用于区分不同的Action。 通过以上步骤,我们可以理解如何加载和配置Struts2,以及它如何处理客户端请求。Struts2的灵活性和可扩展性使其成为Java Web开发中的首选框架之一。
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/6e17a45f5c5e4d00a06ce6e020f0d265_weixin_42188512.jpg!1)
- 粉丝: 19
- 资源: 2万+
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Vue实现iOS原生Picker组件:详细解析与实现思路
- Arduino蓝牙小车:参数调试与功能控制
- 百度Java面试精华:200页精选资源涵盖核心知识点
- Swift使用CoreData填坑指南:CoreData在Swift 3.0的变化
- 微距离无线充电器创新设计及其实验探索
- MTK Android平台开发全攻略:44步详解流程
- RecyclerView全面解析:替代ListView的新选择
- Android开发:自动适配中英文键盘解决方案
- Android调用WebService接口教程
- Android开发:BitmapUtil图片处理全解析与实例
- Android多线程断点续传实现详解
- PCA算法在人脸识别会议签到系统中的应用
- EventBus 3.0:Android事件总线详解与实战应用
- Android FileUtil:全面解析文件操作实用技巧与实例
- RecyclerView添加头部和尾部实战教程
- Android实现微博滑动固定顶部栏实战与优化
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)