### Struts深入浅出知识点详解 #### 一、Struts框架概述 - **Struts**是一种基于MVC(Model-View-Controller)设计模式的Java Web应用框架,它极大地简化了Web应用程序的开发过程,提高了代码的可维护性和可扩展性。 - **历史背景**:Struts项目始于2000年5月,由Craig McClanahan发起,2001年7月发布了1.0版本。随着技术的发展,Struts经历了多个版本的迭代,包括Struts 1和Struts 2两个主要分支。 #### 二、Struts在Web开发中的位置 - **Web开发环境变迁**:自1997年第一个Servlet规范发布以来,Java Web开发经历了一系列的技术革新。从最初的Servlet和JSP(Java Server Pages),再到基于Action的框架如Struts,以及更现代化的Spring MVC和Play Framework等,每一次变革都标志着Web开发技术的重大进步。 - **Struts的地位**:作为早期流行的Web框架之一,Struts在Java Web开发领域占据了重要的地位。它不仅提供了一种标准化的方式来组织和管理Web应用程序,还促进了MVC设计模式的广泛应用。 #### 三、Struts 2的核心组件 - **核心组件**主要包括: - **Actions**:处理用户请求的主要类,负责业务逻辑的执行。 - **Interceptors**(拦截器):用于拦截Action执行前后的方法,可以实现权限控制、数据校验等功能。 - **Value Stack与OGNL**:用于管理请求数据的对象容器,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置对象属性。 - **Result Types**:定义Action执行完成后跳转到哪个页面或资源。 - **View Technologies**:包括JSP、Freemarker等多种视图技术,用于展示数据。 #### 四、Struts 2的配置 - **配置文件**:Struts 2通过XML配置文件来定义各种组件和它们之间的关系,这些文件通常包括`struts.xml`和`struts.properties`等。 - **配置内容**: - 定义Action及其对应的处理方法。 - 指定拦截器和拦截器栈。 - 设置默认的结果类型。 - 配置常量,例如指定上传文件的最大大小。 #### 五、Struts 2的设计理念 - **架构目标**: - **概念分离**:确保视图、控制器和模型之间有明确的界限。 - **松耦合**:减少组件之间的直接依赖,提高系统的灵活性。 - **易测试性**:支持单元测试和集成测试,便于代码的维护和重构。 - **模块化**:将系统划分为独立的模块,每个模块负责一部分功能。 - **惯例优于配置**:通过约定来减少配置的需求,提高开发效率。 - **提高效率的技巧**: - 重用Action的配置。 - 在配置中使用模式匹配符号。 - 使用替代的URI映射方法。 - 充分理解拦截器的功能。 - 利用返回类型和数据转换。 - 在Action中暴露领域模型。 - 尽可能使用声明式验证。 - 把CRUD操作放到同一个Action中。 - 在可能的地方使用注释。 #### 六、视图技术选项 - **了解框架提供的标签库及其特性**:Struts 2提供了一套丰富的标签库,用于简化视图层的开发。 - **自定义UI主题**:可以根据项目的特定需求定制界面样式。 - **为通用的输出创建全局结果**:通过定义全局的结果类型,减少代码重复。 - **声明式异常处理**:在配置文件中声明异常处理规则,而不是在Action中硬编码。 #### 七、国际化与多语言支持 - **国际化**:Struts 2支持多语言应用,可以通过配置文件轻松切换不同的语言包。 - **多语言支持**:开发者可以通过配置文件或代码动态加载不同语言的资源文件。 #### 八、与其他技术的集成 - **页面修饰和布局**:利用Struts 2的模板机制,可以在多个页面间共享布局和样式。 - **业务服务/依赖注入**:结合IoC容器(如Spring)实现服务层的解耦和依赖管理。 - **数据库操作**:整合Hibernate或MyBatis等ORM框架,实现数据持久化。 - **安全性**:通过内置的安全插件或第三方解决方案加强应用的安全性。 - **AJAX支持**:Struts 2内置了对AJAX的支持,可以方便地实现异步数据交互。 #### 九、结语 Struts作为一款成熟的Java Web框架,为开发者提供了一整套完善的解决方案,极大地提升了Web应用的开发效率和质量。通过对Struts的学习和实践,不仅可以掌握其核心技术,还能深入了解MVC设计模式和Web开发的最佳实践。无论是初学者还是有经验的开发者,都能从本书中获益匪浅。
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![jar](https://img-home.csdnimg.cn/images/20210720083455.png)
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/dc3e9adf834b4a9db8272feadff1108e_luming198852.jpg!1)
- 粉丝: 4
- 资源: 11
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)