Struts2框架深度解析:从基础到进阶
需积分: 3 192 浏览量
更新于2024-09-09
1
收藏 69KB DOC 举报
"struts2学习总结"
Struts2是一个强大的MVC框架,它极大地简化了JavaWeb应用程序的开发,提高了开发效率。通过五天的学习,我们可以深入理解其核心概念和常用组件。
1. **Struts2框架基本使用**
- **处理流程**:当一个HTTP请求到达服务器,Struts2框架会根据配置文件(如struts.xml)来决定如何处理这个请求。首先,请求会被过滤器DispatcherServlet捕获,然后通过ActionMapper确定对应的Action,接着ActionInvocation执行Action逻辑,最后由Result将处理结果转发到指定的视图。
- **使用步骤**:创建Action类、配置struts.xml、编写JSP视图页面,以及必要的拦截器设置。
2. **Struts2标签+OGNL表达式**
- **表单UI标签**:用于构建表单元素,如`<s:form>`, `<s:textfield>`, `<s:password>`, `<s:hidden>`, `<s:textarea>`等,方便数据绑定和验证。
- **非UI标签**:如`<s:debug>`用于调试,`<s:property>`显示对象属性,`<s:date>`处理日期,`<s:iterator>`遍历集合,`<s:if>`和`<s:else>`进行条件判断。
3. **常用Result组件的使用**
- **JSP响应**:`dispatcher`用于转发到JSP页面,`redirect`用于重定向,两者处理URL的不同方式。
- **Action响应**:`chain`在同一个请求中调用多个Action,`redirectAction`则在不同的request中调用。
- **Stream响应**:处理文件下载或上传,通过流直接将数据发送到客户端。
- **json响应**:用于生成JSON格式的数据,适合于Ajax请求和前后端分离的应用。
4. **Action的核心应用**
- **属性注入技术**:Struts2通过依赖注入(DI)自动将请求参数赋值给Action的属性。
- **Action配置使用通配符**:允许使用通配符如`*`来匹配多个Action,减少配置文件的冗余。
- **Action动态方法调用**:允许通过Action的方法名作为请求参数来调用不同的处理方法。
- **Action配置使用EL表达式**:增强配置灵活性,允许在配置文件中使用Expression Language(EL)表达式。
- **Action如何使用session,application等对象**:Action可以直接访问session和application,存储和获取全局数据。
5. **拦截器组件**
- **文件上传拦截器**:`fileUpload`拦截器处理文件上传,提供便捷的文件验证和处理功能。
- **自定义拦截器**:允许开发人员创建自己的拦截器,实现特定业务逻辑,如登录检查、事务管理等。拦截器链中的`invocation.invoke()`执行Action逻辑,而`invocation.invokeActionOnly()`只执行Action,不触发Result。
学习Struts2的目的在于理解和掌握MVC设计模式在JavaWeb中的应用,简化开发流程,使得代码结构更加清晰,便于后期的维护和扩展。首先,我们需要学会如何配置和使用Struts2,然后深入学习其内部机制,如拦截器的工作原理,Action的生命周期等。理解MVC模式的意义在于它将模型、视图和控制器分离,使各部分职责明确,有利于团队协作和代码复用。模型负责业务逻辑和数据处理,视图负责数据显示,控制器则协调两者的交互。通过学习Struts2,开发者可以更好地实践这一设计理念,提升项目开发的效率和质量。
2012-08-16 上传
2012-08-16 上传
2012-10-22 上传
2009-10-19 上传
2013-11-23 上传
2017-04-02 上传
2008-09-17 上传
2008-12-06 上传
Chris_Yu1990
- 粉丝: 0
- 资源: 7
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析