Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Struts1.x和Struts2.x有什么不同

Struts1.x和Struts2.x有什么不同
EN

Stack Overflow用户
提问于 2009-04-27 04:33:41
回答 2查看 54.1K关注 0票数 17

我想知道Struts1.x和Struts2.x之间的区别

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-12 12:25:10

主要区别在于,在Struts1.x中,请求直接到达servlet,而在Struts2.x中,请求和响应遍历通过拦截器或过滤器堆栈。常规逻辑可以放在过滤器类中,开发人员可以专注于业务逻辑。除此之外,还有目录结构上的差异。

最好了解Struts1.x和Struts2.x主题之间的区别。这里引用了http://www.geekinterview.com/question_details/64360的一个例子

1.动作类

Struts1.x中,操作类应该扩展操作(或DispatchAction)类,而execute方法具有多个参数和一个ActionForward返回类型,但在Struts2.x中,操作类也可以是简单的pojo,只返回一个字符串,而不返回任何输入参数。

2. Servlet依赖性

容器不处理Struts2.x,与Struts1.x不同,作为请求/响应对的操作和struts2.x操作仍然可以访问原始请求和响应。

3.获取输入

  • In Struts1.x form beans用于定义属性,getter和setter,在struts2.x getter/setter在操作类中定义itself.
  • Struts1.x form beans类必须扩展ActionForm或ValidatorForm,但Struts2.x beans也可以是POJO。

4.可测试性

Struts1.x execute()方法中的servlet API公开了用于testing.

  • Struts2.x依赖注入的servlet

  • ,以简化测试过程。

5.表达式语言

  • Struts1.x JSTL作为它的表达语言,而作为Struts2.x的使用比JSTL.
  • Struts2.x更强大的OGNL(Object Graphic language )作为它的表达语言也可以使用JSTL。

6.类型转换

configurable.

  • Struts中的
  • 1.x属性几乎都是字符串形式,转换器是按类的,而不是Struts2.x使用OGNL进行类型转换

7.验证

服务器端验证是在Struts2.x的action类中进行的,这是一种简单得多的方法。

票数 18
EN

Stack Overflow用户

发布于 2009-04-27 04:43:26

这是一个完全不同的web框架。Struts2基本上就是旧的Webwork。

以下是一些差异:

  • Struts2与POJO一起工作,不再使用ActionForms。来自请求的所有属性都填充在“标准”Java中,classes.
  • Struts2操作不与Servlet API耦合,它们不会接收HttpServletRequest和HttpServletResponse作为参数。而且,它们是有状态的(Struts1操作stateless).
  • Struts2有很多增强功能,比如Interceptor API,而且很多integrations.
  • Configuration是完全不同的。

我建议你让Struts1“退休”,转而使用现代的web框架。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/793291

复制
相关文章
Vue 和 React 有什么不同?
其实我对这两大框架也没有认真钻研过它们的细节,也就是工作上用它们写一些简单业务,或偶尔看看相关的博客文章,但还是有一些浅显的认识的,写下来记录一下。
前端西瓜哥
2022/12/21
1.8K0
Vue 和 React 有什么不同?
dotnet 方法名 To 和 As 有什么不同
在看到 dotnet 框架里面有很多方法里面用了 ToXx 和 AsXx 好像都是从某个类转换为另一个类,那么这两个方法命名有什么不同
林德熙
2022/08/07
1.3K0
Webpack和JShaman相比有什么不同?
JShaman专门用于对JS代码混淆加密,目的是让JavaScript代码变的不可读、混淆功能逻辑、加密代码中的隐秘数据或字符,是用于代码保护的。
用户8703799
2023/10/13
3510
UglifyJS 和JShaman相比有什么不同?
因此,两者是完全不同的。只是因为UglifyJS也具备些许混淆能力,常常使人们误以为它也是混淆加密工具。
用户8703799
2023/08/16
1980
js中==和===有什么不同之处
javaScript具有严格和类型转换相等比较。 对于严格相等比较符,要求比较的对象必须具有相同的类型,并且:
IT工作者
2022/01/25
2K0
“kill -9” 和 “kill -15” 有什么不同
可以用 kill -l 来查看具体有哪些信号编码,这里重点关注 9) SIGKILL 和 15) SIGTERM。
happyJared
2019/06/11
3.2K0
“kill -9” 和 “kill -15” 有什么不同
语句和表达式有什么不同
对于这个问题,我似乎知道答案,但当我尝试向别人解释时,我却语塞了。对于这个问题我有一种感觉,但无法清晰的表达出来。
chuckQu
2022/08/19
1.6K0
什么是敏捷BI?和传统BI有什么不同?
近些年来,随着数字化的快速发展,敏捷BI这个词也越来越流行。敏捷BI其实并不是什么新技术,相较于传统BI来说,是具有敏捷分析功能的新型BI。经过数十年的发展,商业智能BI从最初的简单的数据统计和报表功能,发展到现在拥有丰富的可视化,自动分析甚至智能洞察的功能。
数据前沿
2020/09/14
2.9K0
什么是敏捷BI?和传统BI有什么不同?
Salesforce生态和SAP生态有什么不同
1、一般软硬件系统集成解决方案商,会进行企业应用软件销售出货。在现在,服务器换成了云服务器、存储换成了云存储、数据库换成了云数据库,系统集成解决方案厂商换成了云集成解决方案厂商,换汤不换药。
PHP开发工程师
2021/05/19
2K0
Java和Golang有什么不同之处?
总体来说,Golang 更适合开发高并发和高性能的系统,而 Java 更适合开发大型企业级应用。
Regan Yue
2023/04/01
2.1K0
AJAX应用和传统Web应用有什么不同
在传统的Js中,如果想发送客户端信息到服务器,需要建立一个HTML 表单然后GET或者POST数据到服务器端用户需要点击提交按钮来发送数据信息,然后等待服务器响应请求,页面重新加载使用AJAX技术,就可以使Javascript通过XMLHttpRequest对象直接与服务器进行交互
红目香薰
2022/11/29
1.2K0
TS篇(002)-TypeScript和JavaScript有什么不同?
TypeScript与JavaScript的区别如下: 参考答案: 编号JavaScriptTypeScript1它是由网景公司在1995年开发的。它是2012年由安德斯·海尔斯伯格(Anders Hejlsberg)开发的。2JavaScript源文件是”.js”扩展名。TypeScript源文件是”.ts”扩展名。3JavaScript不支持ES6。TypeScript 支持ES6。4它不支持强类型或静态类型。它支持强类型或静态类型特性。5它只是一种脚本语言。它支持面向对象的编程概念,如类、接口、继承、
齐丶先丶森
2022/05/12
1.4K0
C#种Dispose和Close有什么不同
在 .NET 中有一个很有意思的现象,有些类中同时存在 Close 和 Dispose 两种释放资源的方法,那么它们哪一个更适合做资源清理呢?下面我就来解答一下。 以 SreamReader 为例,我们用 Reflector 来查看该类中的 Close 方法,会发现它其实就是调用 Dispose 方法,并传入参数值 true ,因此如果我们不使用 Using 语句清理资源的话(Using 语句块使用 Dispose 方法清理资源),手动调用 Close 方法的效果基本上和 Dispose 方法是一样的。这里有一点要提一下,使用 using 语句来调用 Dispose 方法,那么资源一定能被释放,如果希望在资源用完后马上释放的话,就必须手动调用 Close 方法。在这里 using 和 close 方法可以同时存在,但 close 必须在 using 语句快结束前调用。 那么, Close 和 Dispose 两个方法都一样,为什么两个都要存在呢?其实我们去看 Dispose 方法和 Close 方法的源码会发现, Dispose 比 Close 多了行 GC.SuppressFinalize(this) 代码,这行代码的意思是通知 GC 当发现 SreamReader 无引用根时不要将它放入队列中,这样就避免了终结器线程再次对它处理,这也减轻了终结器线程的负担。
喵叔
2022/01/11
1.6K0
【说站】python return和yield有什么不同
python return和yield有什么不同 不同点 1、return函数中只存在一个return结束函数。 并且给函数的执行者返回值。 2、只要在函数中有yield,那么它就是生成器函数而不是函数。 3、生成器函数中可以存在多个yield,yield不会结束生成器函数。 一个yield对应一个next。 实例 def eat():     for i in range(1,10):         yield '包子'+str(i)   e = eat() for i in range(5):  
很酷的站长
2022/11/24
1.1K0
【说站】python return和yield有什么不同
【译】.NET Core和.NET Standard有什么不同
近日,微软发布了.NET Core 2.0,但是开发人员中间仍然存在一些疑惑,就是.NET Core、.NET Standard、Xamarin和.NET Framework有什么不同。 .NET Framework用于构建桌面应用程序和运行在互联网信息服务器(IIS)上的ASP.NET应用程序。它是第一个托管框架。 Xamarin是一个用于构建iOS、Android、macOS和桌面应用程序的框架。 .NET Core .NET Core是免费、跨平台的,是托管框架的开源实现。它支持4种类型的应用程序:控
陈仁松
2018/03/20
2.3K0
useLayoutEffect和useEffect执行时机有什么不同
注意加粗的字段,React 官方的文档其实把两个 hook 的执行时机说的很清楚,下面我们深入到 react 的执行流程中来理解下
beifeng1996
2022/12/07
1.5K0
什么是PKS,到底和DCS有什么不同?| 问答赠书
从5月12日到9月15日,剑指工控联合靳涛老师开设了《PKS快速入门》的课程,反响强烈。近期,我们又开设了《PKS工程案例》的课程。众多PKS从业者受益匪浅,但也引起很多对PKS不熟悉的朋友们的更多疑问。
剑指工控
2021/11/09
2.6K0
SSH框架(三) 常用WEB框架Struts1、Struts2和Spring MVC三者的区别
SSH框架(三) 常用WEB框架Struts1、Struts2和Spring MVC三者的区别
Java架构师必看
2021/05/27
1K0
LDO和DC-DC有什么不同?如何选型?
电源模块在生活中应用在很多场景上面,例如在通讯方面、工业自动化、电力控制、铁路、矿业、军工等领域。直流电源转换模块分为两种:低压差线性电源(LDO)和开关电源(DC-DC)。
不脱发的程序猿
2021/01/20
2.4K0
点击加载更多

相似问题

为什么Struts2.x是作为一个多吨制造的?与Struts1.x相比,它有哪些优势?

17

$@和$*有什么不同?

11

和有什么不同

32

$(this)和this有什么不同。$

11

<<和+有什么不同?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文