`

Struts1.x 和 Sturts2.x 的区别

阅读更多

 

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 for struts 1.x

    freemarker与struts 1.x 结合,生成html 在http://blog.csdn.net/chen1255 的web中有详细描述关于freemarker与struts1.x的结合

    struts1.x标签

    这是struts1.x标签! struts1.x是历经考验的成熟的框架! 此标签可以帮助你更好的学习struts1.x的标签!

    struts.xml

    struts.xml文件配置解释,对action配置进行说明

    kk.rar_SWTxiaoguo.r_sturts

    标题中的"kk.rar_SWTxiaoguo.r_sturts"暗示了这是一个关于SWT(Standard Widget Toolkit)和Struts框架的示例项目,被压缩在名为"kk.rar"的文件中,并且可能包含了运行结果"SWTxiaoguo.r"。描述提到这个示例可以在...

    Struts1、Sturts2 PDF教程

    Struts1和Struts2是两个非常重要的Java Web框架,由Apache软件基金会开发,用于构建MVC(模型-视图-控制器)架构的应用程序。它们极大地简化了Web应用的开发,提高了代码的可维护性和组织性。 Struts1是早期的版本...

    struts2.0.11类包

    struts2.0.11类包。一般用下面的五个类包就够用了。xwork-2.0.4,commons-logging-api-1.1,freemarker-2.3.8,ognl-2.6.11,struts2-core-2.0.11

    struts2所有jar包程序文件

    1. `struts2-core.jar`:这是Struts2框架的核心库,包含了Action、Result、Interceptor等核心组件的实现。 2. `xwork-core.jar`:XWork是Struts2的基础,提供了许多底层的功能,如类型转换、对象图导航、事件处理等...

    Struts2.rar文件

    1. **拦截器(Interceptors)**:Struts2的一大特色是它的拦截器机制,这些拦截器在Action调用前后执行,可以用于日志记录、权限验证、事务管理等。提供的18个拦截器涵盖了多种常见需求,如`params`(处理请求参数)...

    利用Gradle进行Struts 2.5.14.1 注解式开发项目

    (1)struts2-anotation.war 打包发布的war可以直接发布到tomcat服务器 (2)struts2-anotation-lib.zip 注解式开发需要用的lib包 (3)struts2-anotation_eclipse.zip 注解时开发myeclipse项目压缩 (4)struts2-...

    struts-2.3.15

    Struts 2是Struts 1的升级版,它在继承了Struts 1优点的基础上,融合了WebWork框架的特性,极大地提高了开发效率和代码质量。 1. **MVC架构**:Struts 2的核心是MVC设计模式,它将业务逻辑、数据模型和用户界面分离...

    struts2 2.5版本的九个jar包

    struts2的最新版本的必需jar包 - commons-fileupload - commons - commons-lang3 - freemarker - javassist - ognl - struts2-core - struts2-json-plugin - xwork-core

    struts2学习笔记(完美总结)——转自OPEN经验库

    Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...

    struts1 开发包

    Struts1是一款经典的Java Web开发框架,由Apache软件基金会维护,它在2000年代初期广泛应用于企业级...虽然Struts1现在已经被Struts2等更现代的框架取代,但它的设计理念和许多核心概念依然在现代Web开发中发挥着作用。

    Sturts2.rar

    1. **配置Struts2插件**:首先,需要在Struts2的配置文件(struts.xml)中添加Commons FileUpload插件,以启用文件上传支持。 ```xml <constant name="struts.multipart.parser" value="jakarta"/> ``` 2. **...

    struts2图片上传并预览

    1. 添加依赖:在项目中,你需要添加Struts2的核心库和文件上传插件。Struts2的FileUpload插件提供了处理文件上传的功能。确保`struts2-core`和`struts2-convention-plugin`以及`struts2-file-uploading-plugin`在你...

    Struts 1 &sturts

    ### Struts 1与Struts 2框架对比分析 #### Struts 1框架特性与问题 **特性:** - **Action类设计模式:**在Struts 1中,所有的业务逻辑处理都通过Action类实现。这些Action类必须继承自一个抽象基类(如`org....

    sturts2.3.15.1+Spring3.2+hibernate3.6整合

    标题中的"sturts2.3.15.1+Spring3.2+hibernate3.6整合"指的是在Web开发中使用Struts2、Spring和Hibernate这三种技术进行集成开发的一个项目版本配置。SSH(Struts2、Spring、Hibernate)是Java企业级应用中常见的...

    struts2 最新漏洞 S2-016、S2-017修补方案 .docx

    Struts2 的 S2-016 和 S2-017 漏洞的修补需要对 Struts2 的源代码和配置文件进行修改,以防止攻击者 inject 恶意代码。需要小心地操作,以免出现错误。同时,需要注意的是,这两个漏洞的修补需要对 Struts2 的源代码...

    struts2-apps.rar

    Struts2是一个强大的Java web应用程序框架,它基于Model-View-Controller(MVC)设计模式,为开发人员提供了构建高效、可扩展且易于维护的Web应用的工具和结构。"struts2-apps.rar"这个压缩包文件包含了多个示例项目...

    sturts2入门例子

    1. **Struts2框架基础**:Struts2是Apache软件基金会的一个开源项目,它在Struts1的基础上进行了大量的改进,提供了更灵活的控制流,更强的异常处理,以及更丰富的插件架构。 2. **环境搭建**:首先,你需要下载...

Global site tag (gtag.js) - Google Analytics