比较项
|
Struts1
|
Struts2
|
Action类 |
Struts1要求Action类继承一个抽象基类,这是Struts1针对抽象类而不是接口编程的一个普遍问题
|
Struts2的
Action可以实现Action接口,也可以实现提供的其他服务的接口。Struts2提供了ActionSupport基类来实现常用的接口。在
Struts2中Action接口不是必须的,任何包含execute()方法的POJO类都可以作为Action
|
线程模型 |
Struts1 的Action是单例模式,所有针对这个Action的请求都由它的唯一实例进行处理,因此它必须是线程安全的。单例策略限制了Struts1的Action所能做的事,并且在开发时要小心,Action的资源必须是线程安全或同步的
|
Struts2的Action为每一个请求实例化一个对象,这样就没有线程安全的问题。实际上Servlet容器每次处理请求时,都会产生许多被丢弃的对象,但并没有证据证明更多的对象会产生性能和垃圾回收问题
|
Servlet依赖 |
Struts1 的Action依赖Servlet API
|
Struts2的Action不依赖Web容器,Servlet上下文对象被表示为一个简单的Map对象。另外Struts2仍然可以访问原始的HttpServletRequest和HttpServletResponse对象。
|
输入捕获 |
Struts1使用ActionForm对象来捕获输入。并且所有的ActionForm需要继承ActionForm基类,开发者常常创建过多的类来获得输入
|
Struts2直接使用Action的属性来封装请求参数,避免了使用另外的输入对象。
|
绑定值到视图 |
Struts1 使用标准的JSP机制把对象绑定到页面上下文,以便在页面中访问动态数据
|
Struts2使用”值栈”技术,让标签库可以访问值,而不需要将视图和它呈现的对象类型绑定在一起
|
验证 |
Struts1支持通过重写ActionForm的Validate()方法进行手动验证,或者使用Commons Validator验证框架进行验证,同一个类可以有不同的验证上下文,但不能使用为对象属性的类定义的验证规则对子对象进行验证
|
Struts2支持重写ActionSupport的Validate()方法进行手动验证,或者使用XWork验证框架进行验证。XWork验证框架支持使用对象属性所属的类和验证上下文定义的验证规则来验证对象的子属性
|
Action执行的控制 |
Struts1 支持每一个模块一个单独的请求处理器(生命周期),但是在模块中的所有Action必须共享相同的生命周期
|
Struts2 支持使用拦截器栈为每一个Action创建不同的生命周期,如果需要,也可以创建自定义的拦截器栈,和不同的Action一起使用
|
相关推荐
Java面试题锦是一个汇集了Java编程语言及其相关技术面试题目的资源集合,旨在帮助求职者或开发者准备面试,提升对Java技术栈的理解和掌握。这个压缩包中的文档可能包含了从基础到高级的各种Java问题,涵盖了核心语法...
【JAVA历年面试题锦集】是一份集合了Java程序员面试中常见问题的资源,涵盖了广泛的知识点,旨在帮助求职者准备面试,提升成功找到Java编程工作的机会。这份文档可能包括了从基础语法到高级概念,从理论知识到实战...
【Java面试题锦集】 Java作为一种广泛使用的编程语言,在软件开发和互联网行业中占据了核心地位,因此,对于求职者来说,掌握扎实的Java知识并能在面试中流利地解答相关问题至关重要。这份“java面试题锦集.zip”...
Java面试题涵盖了许多核心概念,从基本语法到高级特性,以下是一些关键知识点的详细解释: 1. **final, finally, finalize的区别**: - `final`:用于声明变量、方法或类,表示不可改变或不可继承。被声明为`final...
Dubbo面试题锦集.txt 阿里巴巴高级Java面试题(首发,70道).doc 春节跳槽最新Java面试题及答案整理.txt 分享18道Java基础面试笔试题(面试实拍).docx 去BAT面试完的Mysql面试题总结(55道,带完整答案).docx 。。...
对于Java开发者来说,理解和掌握相关的面试知识点至关重要。以下是一些Java面试中的常见问题及其详细解释: 1. **异常处理**: Java中的异常处理是通过`try-catch-finally`块实现的。当程序遇到错误时,会抛出一个...
iOS面试题锦集中涵盖了许多关于iOS开发的关键知识点,下面我将详细解释其中提到的一些核心概念。 1. **浅复制与深复制的区别** 浅复制只是复制对象的指针,新旧对象共享同一块内存资源,修改其中一个会影响另一个...
【Java面试题锦集】 1. **异常处理机制** Java中的异常处理机制是为了处理程序运行过程中的错误和异常情况。当程序违反了Java的语义规则,如数组下标越界、空指针异常等,Java虚拟机就会抛出异常。异常是`java....
Java作为一门广泛使用的编程语言,其面试题涵盖了基础语法、面向对象特性、内存管理、集合框架、多线程等多个方面。以下是对这些知识点的详细解释: 1. **final, finally, finalize的区别**: - `final`:用于声明...
"二十几家公司的面试题锦"这一资源集合了多家公司的面试题目,旨在为准备面试的朋友们提供一个全面的复习材料。这些题目涵盖了各种技术和非技术领域,包括但不限于编程语言、算法与数据结构、操作系统、网络、数据库...
iOS面试题锦集中涵盖了许多关键知识点,以下是针对题目所提问题的详细解答: 1. **浅复制和深复制的区别** 浅复制只是复制对象的指针,使得新旧两个对象指向同一块内存空间,因此对其中一个对象的修改会影响到另一...
下面,我们将深入探讨软件测试工程师的面试题及工作职责。 1. **基础知识**:面试中,测试工程师可能需要展示对编程语言(如Java、Python或C#)的基本理解,以及对操作系统(如Windows、Linux)和数据库(如SQL ...
Java笔试训练题锦集是针对Java开发者准备的面试与笔试复习资料,涵盖了广泛的Java基础知识以及JSP相关知识。这份资源旨在帮助你系统性地复习和检验自己的Java技能,特别是那些在实际开发中容易被忽视的细节。以下是...
在Java编程领域,面试通常会...这些面试题涵盖了Java语言的核心特性和编程实践,对于理解Java的内存管理、面向对象设计、并发编程等方面至关重要。掌握这些知识点不仅有助于通过面试,也能提高日常编程的质量和效率。
【长沙达内面试题锦集.pdf】 这本面试题集主要涵盖了达内总部在软件测试技术领域的面试重点,尤其对于Java编程语言相关的测试知识进行了深入探讨。作为一个专业的IT人士,理解并掌握这些知识点至关重要,因为它们是...
《软件测试面试题集锦》是一份集合了大约110家公司的面试问题的资源,旨在帮助准备软件测试面试的求职者进行全面而深入的复习。这份资料覆盖了计算机科学、软件工程以及最新的测试理论和技术,涵盖了测试的基础知识...
### 阿里面试集锦知识点详解 #### 一、红黑树的特性 红黑树是一种自平衡的二叉查找树,具有以下特点: 1. **颜色属性**:每个节点都带有颜色属性,可以是红色或黑色。 2. **根节点**:根节点必须是黑色。 3. **叶子...