### Unmi的Struts2学习笔记关键知识点解析 #### 一、Struts2与Struts1的主要区别 1. **架构上的变化**:Struts2并非Struts1的直接升级版,而是基于WebWork框架发展而来,这导致两者在设计哲学和技术实现上有很大差异。例如,Struts2的核心控制器变成了`FilterDispatcher`,而Struts1的核心控制器是`ActionServlet`。 2. **Action设计的变化**:在Struts1中,Action必须继承自抽象类`Action`,这使得Action紧密耦合于Servlet API。而在Struts2中,Action可以是任何实现了`Action`接口的类,甚至可以直接使用纯POJO对象,这大大提高了Action的可测试性和可复用性。 3. **线程安全问题**:Struts1中的Action实例是单例模式的,这意味着多个用户可能会共享同一个Action实例,因此开发者需要特别注意线程安全问题。相比之下,Struts2中的每个请求都会创建一个新的Action实例,从而避免了这一问题。 4. **数据绑定机制**:Struts1通过`ActionForm`来处理用户输入的数据,这需要开发者额外定义表单类,并且这些类也耦合于Servlet API。而在Struts2中,数据可以直接绑定到Action对象或单独的POJO对象上,这更加灵活且减少了代码量。 5. **表达式语言**:Struts2采用了OGNL(Object-Graph Navigation Language)作为表达式语言,支持复杂的数据结构操作,如数组、列表和Map等。这使得在页面中访问数据变得更加简单和强大。 6. **配置文件的不同**:Struts1只需要一个`struts-config.xml`文件,而Struts2则使用`struts.xml`和`struts.properties`两个文件。特别是`struts.properties`文件中可以设置开发模式和自动重载配置文件等功能,极大地方便了开发过程。 7. **视图技术的选择**:Struts2支持多种视图技术,包括但不限于FreeMarker、Velocity、XSLT和PDF等,而Struts1主要依赖于JSP。这种灵活性让开发者可以根据项目需求选择最适合的技术栈。 8. **标签库和AJAX支持**:Struts2提供了一套功能丰富的标签库,并统一以`s`作为前缀,同时内置了对AJAX的支持,使得前端交互更加丰富。 #### 二、Struts2的实践应用 1. **配置文件的位置**:Struts2的`struts.xml`文件通常放置在`WEB-INF/classes`目录下,而不是像Struts1那样放在`WEB-INF`目录下。如果不在`web.xml`文件中指定`struts.xml`的位置,系统会默认使用类加载器来查找它。 2. **Freemarker的集成**:即使是简单的Struts2应用,也需要包含`freemarker-xxx.jar`包,因为Struts2的UI标签库依赖于Freemarker的模板引擎。 3. **FilterDispatcher的作用**:`FilterDispatcher`作为核心过滤器,负责处理所有Web请求,并将带有`.action`后缀的请求转发给对应的业务逻辑处理。 4. **<package>元素的使用**:在`struts.xml`文件中,可以通过`<package>`元素来组织`<action>`元素,这有助于提高配置文件的可读性和维护性。`<package>`元素需要指定`name`属性,用于区分不同的Action分组。 Struts2相比Struts1在设计模式、性能优化以及易用性方面有了显著提升,特别是在减少代码耦合度、增强可测试性和支持多种视图技术等方面表现出色。对于希望构建现代Web应用程序的开发者而言,Struts2无疑是一个值得深入研究和使用的框架。





















剩余55页未读,继续阅读


- 粉丝: 475
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 计算机知识竞赛方案.docx
- 任教班级07级计算机班任课老师黄思玉ppt课件.pptx
- 最新通信工程考研院校分类简介收集整理.doc
- 基于COracle的考勤管理系统的设计与开发.doc
- sem网站优化方案.ppt
- 2023年网络益智竞赛试题.doc
- 以Webservices实现应用程序整合-PPT课件.ppt
- 工程项目管理课程设计任务书样本.doc
- 用VB编写的记事本源码教程.pdf
- 投资项目管理师考试项目决策备考习题3.doc
- 苏州科技大学软件建模复习试卷.doc
- 基因工程制药-4-纯化.质控.ppt
- 网络营销实例分析综合运用p.pptx
- 企业发生的展会费、网络费如何作会计处理【会计实务操作教程】.pptx
- 冶金企业典型事故的系统安全分析.doc
- 会议室系统集成方案-------.pdf


