starting-struts2
### Struts2速会手册知识点总结 #### 一、Struts2概述 - **起源与发展**:Struts2是基于Webwork和XWork框架发展起来的。2000年由Craig McClanahan发起的原始Struts项目,在2001年发布了1.0版本,而Struts2则是作为其后续版本出现,它不仅继承了Struts的优点,还加入了更多的功能,如拦截器、OGNL表达式引擎等。 - **核心价值**:Struts2的核心价值在于提供了一个简洁且强大的MVC架构实现,使得开发者能够更加专注于业务逻辑的编写而非框架本身的细节。 #### 二、Struts2框架的组成部分 - **核心组件**: - **Action类**:负责处理用户的请求,执行具体的业务逻辑。 - **拦截器**:在Action执行前后进行拦截处理,可以用来实现认证、授权等功能。 - **配置文件**:定义了框架的行为和组件之间的关系。 - **视图技术**:如JSP或FreeMarker,用于展示数据。 - **配置**:通过XML文件或注解来配置Action、拦截器等组件。 #### 三、Struts2的架构特点 - **概念分离**:将不同的职责分离,例如视图、控制和模型层分离,使得代码更加清晰、易于维护。 - **松耦合**:各个组件之间通过接口交互,减少依赖,提高系统的灵活性。 - **易测试性**:由于良好的架构设计,使得单元测试和集成测试变得容易实现。 - **模块化**:系统可以被划分为多个独立的模块,每个模块负责一部分功能。 - **惯例重于配置**:遵循一定的命名规则和结构,减少不必要的配置。 #### 四、提高效率的技巧 - **重用Action的配置**:通过共享配置来减少冗余。 - **使用模式匹配调配符**:在配置文件中使用通配符来简化Action的映射。 - **使用替代的URI映射方法**:例如使用路径变量来提高URL的可读性和灵活性。 - **了解拦截器的功能**:根据需求选择合适的拦截器,避免过度配置。 - **使用提供的拦截器栈**:Struts2提供了一些预定义的拦截器栈,可以根据应用场景直接使用。 - **利用返回类型**:通过配置返回类型来简化Action的编写。 - **利用数据转换**:自动转换表单字段的数据类型,减少手动转换的工作量。 - **利用列表数据项支持**:支持列表类型的表单字段,方便处理多选操作。 - **在Action中暴露领域模型**:直接使用领域对象而不是DTO,减少代码量。 - **尽可能使用声明式验证**:利用Struts2内置的验证机制,减少手写验证逻辑的工作量。 - **把CRUD操作放到同一个Action中**:减少Action的数量,简化配置。 - **在可能的地方使用注释**:通过注解来配置Action和拦截器,提高代码的可读性。 #### 五、视图技术选项 - **标签库**:Struts2提供了丰富的标签库,支持各种常见的UI控件。 - **自定义UI主题**:允许开发者自定义标签库的主题,以适应不同的UI风格。 - **全局结果**:可以通过配置全局的结果来简化视图的配置。 - **声明式异常处理**:使用Struts2的异常处理机制来统一处理应用中的异常。 #### 六、其他技术集成 - **页面修饰和布局**:使用Struts2的布局标签来美化页面布局。 - **业务服务/依赖注入**:通过Spring等依赖注入框架来管理业务层的服务。 - **数据库**:集成Hibernate或MyBatis等ORM框架来处理数据访问层。 - **安全**:使用Shiro或Spring Security来实现认证和授权功能。 - **AJAX**:Struts2支持与Ajax技术结合,实现异步请求和响应。 #### 七、总结 Struts2是一款功能强大且灵活的Java Web开发框架,它不仅仅是一个框架,更是一种思想的体现。通过上述知识点的总结,可以看出Struts2的设计理念非常先进,它极大地提高了开发效率,同时也保证了系统的可维护性和扩展性。对于希望快速开发高质量Web应用的开发者来说,Struts2是一个非常好的选择。
- 粉丝: 1
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Vue框架的韭菜看盘:宽基指数实时掌握设计源码
- 基于Python的DIY流星观测站设计源码
- 基于2021年竞赛基准的Python与Shell语言设计源码
- 基于Java平台的memcache、redis、ehcache缓存工具类库设计源码
- 基于Vue和Tomcat的餐厅点餐应用设计源码
- 基于Vue、JavaScript和Python的学籍管理系统设计源码
- 基于Java语言的天津中德应用技术大学21软件工程4班创新工程实践项目SaTokenDemo设计源码
- 基于GraphHopper的Java SpringBoot多途径点路径规划设计源码
- 基于Java语言的pro001项目设计源码
- 基于Java、Vue、JavaScript、HTML、Shell的综合性心理健康系统设计源码