深入浅出 STRUTS 2
### 深入浅出 STRUTS 2 #### 知识点概览 1. **Struts 2 的发展历程** 2. **Struts 2 的核心组件介绍** 3. **Struts 2 的配置机制** 4. **Action 与 Interceptor 的工作机制** 5. **值栈与 OGNL 表达式的运用** 6. **结果类型和视图技术的选择** 7. **架构目标与最佳实践** 8. **提高效率的技巧** 9. **视图技术选项及定制** 10. **国际化与异常处理策略** 11. **与其他技术的集成** #### Struts 2 的发展历程 Struts 2 是 Apache Struts 的第二代框架,其发展始于 Web 开发技术的迅速演变。自1997年第一个 Servlet 规范发布以来,Java Web 开发经历了巨大的变革。Struts 2 在2000年由 Craig McClanahan 发起,于2001年发布1.0版本。它是对原 Struts 框架的重大改进,引入了更多的灵活性和模块化特性。 #### Struts 2 的核心组件 - **核心组件**:Struts 2 提供了一系列的核心组件,如 Action、Interceptor、Value Stack 和 OGNL 等,这些组件构成了框架的基础。 - **配置**:通过 XML 文件或注解来进行配置,使得开发更加灵活。 - **Action**:负责业务逻辑处理,通常继承自 `ActionSupport` 类。 - **Interceptor**:用于处理横切关注点,如事务管理、认证授权等。 - **值栈与 OGNL**:值栈存储请求和响应的数据,而 OGNL 作为一种强大的表达式语言,用于访问值栈中的对象属性。 - **结果类型**:定义了 Action 处理完成后如何转向下一个页面或资源。 #### 配置机制 Struts 2 支持多种配置方式,包括 XML 文件和注解。XML 文件可以更精细地控制框架行为,而注解则提供了更简洁的配置方式。选择合适的配置方式有助于简化开发过程,提高代码的可维护性和扩展性。 #### Action 与 Interceptor 的工作机制 - **Action**:每个 Action 对应一个用户请求,处理完请求后返回一个结果,该结果通常是一个 JSP 页面或其他类型的视图。 - **Interceptor**:在 Action 执行前后,可以通过配置一系列 Interceptor 来处理一些跨切关注点,如参数绑定、输入验证、会话管理等。 #### 值栈与 OGNL 表达式的运用 - **值栈**:Struts 2 使用值栈来存储请求和响应的数据。它是一个线程安全的数据结构,能够确保在多线程环境下数据的安全访问。 - **OGNL**:是一种强大且灵活的表达式语言,可以在 JSP 页面或其他视图中直接访问值栈中的对象及其属性,大大简化了数据访问的过程。 #### 结果类型和视图技术的选择 - **结果类型**:Struts 2 支持多种结果类型,如 `dispatcher`、`chain`、`redirect` 等,每种结果类型都有其适用场景。 - **视图技术**:除了传统的 JSP,还可以使用 FreeMarker、Velocity 等模板引擎,或是 JSON/XML 格式的数据输出。 #### 架构目标与最佳实践 - **概念分离**:确保业务逻辑、表示层和数据访问层之间的清晰划分。 - **松耦合**:通过依赖注入等方式降低各组件间的耦合度。 - **易测试性**:通过良好的设计和架构,使得单元测试和集成测试变得更加简单。 - **模块化**:将应用划分为多个独立的模块,便于管理和维护。 #### 提高效率的技巧 - **重用 Action 的配置**:通过定义通用的 Action 属性来减少重复配置。 - **使用模式匹配**:利用通配符来简化 URL 映射。 - **利用返回类型**:合理选择结果类型可以简化代码实现。 - **利用数据转换**:自动转换数据类型可以减少编码负担。 - **利用列表数据项支持**:方便地处理列表类型的业务数据。 - **在 Action 中暴露领域模型**:将领域模型直接传递给视图,减少额外的封装工作。 - **尽可能使用声明式验证**:通过注解等方式简化验证逻辑的编写。 #### 视图技术选项及定制 - **了解框架提供的标签库及其特性**:Struts 2 提供了一套丰富的标签库,可用于构建动态页面。 - **自定义 UI 主题**:根据项目需求定制外观和样式。 - **为通用的输出创建全局结果**:减少重复代码,提高开发效率。 - **声明式异常处理**:通过配置文件统一处理异常,提高系统的健壮性。 #### 国际化与异常处理策略 - **国际化**:Struts 2 提供了强大的国际化支持,可以通过资源文件轻松实现多语言支持。 - **异常处理**:采用声明式异常处理机制,可以更优雅地处理运行时异常。 #### 与其他技术的集成 - **页面修饰和布局**:使用 Struts 2 的布局标签来美化页面。 - **业务服务/依赖注入**:通过 Spring 或其他 DI 框架进行依赖注入,增强组件之间的解耦。 - **数据库**:结合 Hibernate 或其他 ORM 工具实现数据持久化。 - **安全**:使用 Shiro 或 Spring Security 进行身份验证和授权。 - **AJAX**:通过 AJAX 技术实现实时交互功能。 《深入浅出 Struts 2》这本书不仅介绍了 Struts 2 的基本概念和发展历程,还详细讲解了其核心组件、配置机制以及各种实用技巧。通过对这些知识点的学习和掌握,开发者可以更好地理解和应用 Struts 2 框架,提高 Java Web 应用的开发效率和质量。
- 粉丝: 5
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 官网下载的VSCode和中文语言包, VSCodeUserSetup-x64-1.92.2.exe
- 全国高校计算机能力挑战赛往届真题整理.zip
- HandyDoc:HandyControl 的离线文档
- 202210120219+朱羡彬+软件工程实验一.docx
- C# 工厂模式开发示例,详细展示三种工厂模式
- Python大作业:基于OpenCV模板匹配的数字识别
- AI 绘画工具 Stable Diffusion 的换脸插件ReActor所使用的codeformer.pth 权重文件
- RDC小计的材料等等等等
- 振宇日语·最好用最好记15000日语单词随身背 (李晓东) (Z-Library).epub
- led-tcp-mastc