### Struts in Action 中文修正版.pdf 知识点概览
#### 1. Struts 概述
- **创建者**: Struts 是由 *Ted Husted* 创建的一个 Java Web 开发框架。
- **开源理由**: 为了促进社区共享与改进,Struts 被作为开源项目发布。
- **命名来源**: “Struts” 这个名字来源于建筑学中的“Strut”,即一种用于支持结构的构件,在软件架构中象征着对应用结构的支持。
- **实际应用**: Struts 是一个基于 Model-View-Controller (MVC) 设计模式的框架,用于简化 Web 应用程序的开发。
- **深入理解**:
- **Struts 控制器组件**: Struts 的核心组件是一个名为 `ActionServlet` 的 Servlet,它负责接收 HTTP 请求、解析请求参数,并将它们转发给合适的 `Action` 对象进行处理。
- **Web 应用开发**: 使用 Struts 可以通过 MVC 架构将业务逻辑、数据模型和用户界面分离,使得应用程序更加模块化和易于维护。
#### 2. Struts 架构详解
- **框架需求背景**:
- **Web 应用问题**: 传统的 Web 应用开发往往涉及到大量的重复编码工作,且难以维护。
- **Servlet 解决方案**: 利用 Servlet 来处理 HTTP 请求是一种常见的解决方案,但它缺乏灵活性和扩展性。
- **框架的必要性**: 框架可以提供一套标准化的解决方案,使得开发者能够专注于业务逻辑而不是底层技术细节。
- **Struts 在 MVC 架构中的角色**:
- **MVC 演变**: MVC 设计模式最初应用于桌面应用,后来被引入到 Web 开发中。
- **Model2 模式**: Struts 实现了一个称为 Model2 的 MVC 模型,其中视图和模型之间通过控制器来交互。
- **分层设计**: Struts 将应用划分为多个层次,每个层次负责不同的功能,如表示层、业务逻辑层等。
- **Struts 控制流程**:
- **总体流程**: 用户请求 → `ActionServlet` → `Action` → 视图。
- **流程细节**: `ActionServlet` 根据请求参数找到对应的 `Action` 类,并调用其 `execute` 方法来处理请求。
- **性能考量**: Struts 通过缓存机制等优化手段提高性能。
#### 3. 构建简单应用示例
- **案例介绍**: 本节通过构建一个简单的登录应用来展示 Struts 的基本用法。
- **应用分析**:
- **登录流程**: 用户首先访问欢迎页面,然后转到登录页面输入用户名和密码,系统验证后返回欢迎页面或错误提示。
- **页面剖析**: 每个页面都包含相应的 JSP 文件和 Struts 配置文件。
- **源代码组织**: 源代码按照功能划分,包括但不限于 JSP 页面、Action 类、Form 类等。
- **开发流程**:
- **需求定义**: 明确应用的功能需求。
- **架构设计**: 规划应用的整体架构,包括目录结构和文件布局。
- **工具设置**: 准备开发环境,例如 IDE、服务器等。
- **文件配置**: 编写并配置必要的 XML 文件,如 `web.xml`, `struts-config.xml` 等。
- **测试部署**: 测试应用是否能够在服务器上正常运行。
#### 4. Struts 组件配置
- **配置文件介绍**:
- **web.xml**: 定义了应用的基本配置,如 Servlet 和 Filter 的映射。
- **struts-config.xml**: 描述了 Struts 框架的核心配置,包括 Action 和 Form Bean 的映射。
- **其他配置文件**: 如 `messages.properties` 用于国际化支持。
- **web.xml 配置详解**:
- **Servlet 映射**: 定义 `ActionServlet` 的 URL 映射。
- **Filter 设置**: 配置拦截器,如对请求进行编码转换或安全检查。
- **初始化参数**: 设置框架的相关参数,如是否开启开发模式等。
以上是对《Struts in Action 中文修正版》部分章节内容的知识点总结,旨在帮助读者更好地理解和掌握 Struts 框架的基础概念和使用方法。