1. Action 类:
Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。
Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现 常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。
2. 线程模式:
Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。
Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)
3. Servlet 依赖:
Struts1 Action 依赖于Servlet API ,因为当一个Action被调用时HttpServletRequest 和 HttpServletResponse 被传递给execute方法。
Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2 Action仍然可以访问初始的request和response。但是,其他的元素减少或者消除了直接访问HttpServetRequest 和 HttpServletResponse的必要性。
4. 可测性:
测试Struts1 Action的一个主要问题是execute方法暴露了servlet API(这使得测试要依赖于容器)
分享到:
相关推荐
freemarker与struts 1.x 结合,生成html 在http://blog.csdn.net/chen1255 的web中有详细描述关于freemarker与struts1.x的结合
这是struts1.x标签! struts1.x是历经考验的成熟的框架! 此标签可以帮助你更好的学习struts1.x的标签!
1. **下载最新版本的Struts2升级包**: - 下载地址: [http://struts.apache.org/download.cgi](http://struts.apache.org/download.cgi) - 推荐版本: Struts2.3.32 2. **替换核心Jar包**: - 必须替换的关键Jar包...
在这个案例中,我们将深入探讨Struts2中的ConverterType,以及如何实现一个自定义的类型转换器来处理坐标(x,y)的数据。 首先,了解Struts2的类型转换机制。默认情况下,Struts2会根据Action类中属性的数据类型...
1. **依赖库**:为了实现文件上传,我们需要引入Struts2的文件上传插件,例如`struts2-convention-plugin-x.x.x.jar`和`struts2-file-uploading-plugin-x.x.x.jar`。这些JAR包在项目中是必不可少的,它们提供了文件...
从而允许与业务逻辑控制器 与 servlet-api分离,避免了侵入性(所谓侵入性就是指的这个架构设计出来的部件对系统的影响范围,标签库几乎可以完全替代JSTL的标签库,并且 struts2.x支持强大的ognl表达式。可用于软件...
Struts2-ScanStruts2漏洞利用扫描工具,基于互联网上已经公开的Structs2高危漏洞exp的扫描利用工具,目前支持的漏洞如下: S2-001, S2-003, S2-005, S2-007, S2-008, S2-009, S2-012, S2-013, S2-015, S2-016, S2-019...
相较于Struts1.x,Struts2在标签库的设计上更为灵活且功能更加强大。本文将详细介绍Struts2中的非UI标签及其用法。 #### 二、Struts2 标签库介绍 Struts2的标签库主要分为两大类:非UI标签和UI标签。其中,非UI标签...
Apache Struts 1.3 是 Struts 1.x 系列的最后一个主要版本,它在早期版本的基础上进行了许多改进和增强,以提高稳定性和性能。以下是一些核心知识点: 1. **Action 类**:Struts 的核心是 Action 类,它是业务逻辑...
### Struts2 文件上传中 ContentType对应表解析 在Struts2框架中,处理文件上传时,需要正确识别文件类型并设定对应的MIME类型(ContentType),这对于确保文件被正确解析至关重要。下面将详细介绍部分常见的文件...