iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >Struts1和Struts2有什么区别
  • 365
分享到

Struts1和Struts2有什么区别

2023-06-17 22:06:21 365人浏览 独家记忆
摘要

这篇文章主要介绍了Struts1和Struts2有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Struts1和Struts2的类:◆Struts1要求Action类

这篇文章主要介绍了Struts1和Struts2有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Struts1和Struts2的类:

◆Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。

◆Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。

线程模式:

◆Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。

◆Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)

Struts1和Struts2的Servlet 依赖:

◆Struts1 Action 依赖于Servlet api ,因为当一个Action被调用时httpservletRequest 和 HttpServletResponse 被传递给execute方法。

◆Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2 Action仍然可以访问初始的request和response。但是,其他的元素减少或者消除了直接访问HttpServetRequest 和 HttpServletResponse的必要性。

Struts1和Struts2的可测性:

◆测试Struts1 Action的一个主要问题是execute方法暴露了servlet API(这使得测试要依赖于容器)。一个第三方扩展--Struts TestCase--提供了一套Struts1的模拟对象(来进行测试)。

◆Struts 2 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。

Struts1和Struts2的捕获输入:

◆Struts1 使用ActionFORM对象捕获输入。所有的ActionForm必须继承一个基类。因为其他JavaBean不能用作ActionForm,开发者经常创建多余的类捕获输入。动态Bean(DynaBeans)可以作为创建传统ActionForm的选择,但是,开发者可能是在重新描述(创建)已经存在的JavaBean(仍然会导致有冗余的javabean)。

◆Struts 2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。输入属性可能是有自己(子)属性的rich对象类型。Action属性能够通过 WEB页面上的taglibs访问。Struts2也支持ActionForm模式。rich对象类型,包括业务对象,能够用作输入/输出对象。这种 ModelDriven 特性简化了taglib对POJO输入对象的引用。

Struts1和Struts2的表达式语言:

◆Struts1 整合了jsTL,因此使用JSTL EL。这种EL有基本对象图遍历,但是对集合索引属性的支持很弱。

◆Struts2可以使用JSTL,但是也支持一个更强大和灵活的表达式语言--"Object Graph Notation Language" (OGNL).

Struts1和Struts2的绑定值到页面(view):

◆Struts 1使用标准JSP机制把对象绑定到页面中来访问。

◆Struts 2 使用 "ValueStack"技术,使taglib能够访问值而不需要把你的页面(view)和对象绑定起来。ValueStack策略允许通过一系列名称相同但类型不同的属性重用页面(view)。

Struts1和Struts2的类型转换:

◆Struts 1 ActionForm 属性通常都是String类型。Struts1使用Commons-Beanutils进行类型转换。每个类一个转换器,对每一个实例来说是不可配置的。

◆Struts2 使用OGNL进行类型转换。提供基本和常用对象的转换器。

Struts1和Struts2的校验:

◆Struts 1支持在ActionForm的validate方法中手动校验,或者通过Commons Validator的扩展来校验。同一个类可以有不同的校验内容,但不能校验子对象。

◆Struts2支持通过validate方法和XWork校验框架来进行校验。XWork校验框架使用为属性类类型定义的校验和内容校验,来支持chain校验子属性

Struts1和Struts2 Action执行的控制:

◆Struts1支持每一个模块有单独的Request Processors(生命周期),但是模块中的所有Action必须共享相同的生命周期。

◆Struts2支持通过拦截器堆栈(Interceptor Stacks)为每一个Action创建不同的生命周期。堆栈能够根据需要和不同的Action一起使用。

感谢你能够认真阅读完这篇文章,希望小编分享的“Struts1和Struts2有什么区别”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: Struts1和Struts2有什么区别

本文链接: https://www.lsjlt.com/news/293563.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Struts1和Struts2有什么区别
    这篇文章主要介绍了Struts1和Struts2有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Struts1和Struts2的类:◆Struts1要求Action类...
    99+
    2023-06-17
  • Struts1和struts2的区别_动力节点Java学院整理
    Struts2其实并不是一个陌生的Web框架,Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物。简单来说二者的区别是:  ...
    99+
    2023-05-31
    struts1 struts2 ava
  • Java中Struts2与Webwork有什么区别
    这篇文章主要介绍Java中Struts2与Webwork有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!从某种程度上来看,Struts 2是WebWork的升级,而不是Struts 1的升级,甚至在Apach...
    99+
    2023-06-17
  • 在java中spring mvc和struts2的区别是什么
    Struts2是类级别的拦截机制,而Spring mvc是方法级别的拦截机制。Struts2有自己的拦截Interceptor机制,Spring mvc用的是独立的Aop方式。Struts2的配置文件量比Spring mvc大。Struts...
    99+
    2024-04-02
  • /” 和 “\” 有什么区别
    键盘上的“/” 和 “\”这个两个“斜杠”有什么区别。 通常,“/”被叫作“正斜杠”,英语是forward slash,经常简称为slash。Windows命令用\,中文排版用/。而“\” 被叫作“反斜杠”,英语是backward sla...
    99+
    2023-09-25
    前端 java 服务器 Powered by 金山文档
  • H5和HTML有什么区别
    今天就跟大家聊聊有关H5和HTML有什么区别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。h6和html的区别是:1、文档类型声明上,html有很长的一段代码很难记住,而html5只...
    99+
    2023-06-15
  • flash和html5有什么区别
    这篇文章将为大家详细讲解有关flash和html5有什么区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。区别有:1、html5是Web中HTML的规范,flash是矢量图和Web动画的标准;2、html...
    99+
    2023-06-15
  • asp和html有什么区别
    asp和html有什么区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。ASP代表动态服务器页面(Active Server Pages),通常称为Classic ASP或...
    99+
    2023-06-14
  • c和JavaScript有什么区别
    本篇内容介绍了“c和JavaScript有什么区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!区别:1、C语言主要是被编译成机器语言,而J...
    99+
    2023-06-14
  • javascript和css有什么区别
    javascript和css有什么区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布...
    99+
    2023-06-14
  • js和javascript有什么区别
    小编给大家分享一下js和javascript有什么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!js和javascript之间没有区别,js是javascri...
    99+
    2023-06-15
  • MySQL的@和@@有什么区别
    本篇内容主要讲解“MySQL的@和@@有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的@和@@有什么区别”吧!MySQL的@与@@区别@x ...
    99+
    2024-04-02
  • JavaScript和Java有什么区别
    这篇文章主要介绍“JavaScript和Java有什么区别”,在日常操作中,相信很多人在JavaScript和Java有什么区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • typescript和nodejs有什么区别
    这篇文章将为大家详细讲解有关typescript和nodejs有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。区别:1、typescript是微软开...
    99+
    2024-04-02
  • tls和ssl有什么区别
    tls和ssl的区别:tls与ssl所支持的加密算法不同。tls记录格式与ssl记录格式相同,但版本号的值不同,例如tls版本1.0使用的版本号为sslv3.1。tls与sslv3.0在计算主密值时采用的方式不同。在ssl中,填充后的数据长...
    99+
    2024-04-02
  • https和md5有什么区别
    https是用于解决传输层安全问题的网络协议,其核心是基于公钥密码学理论实现了对服务器身份认证、数据的私密性保护以及对数据完整性的校验等功能,https是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安...
    99+
    2024-04-02
  • linux和ubuntu有什么区别
    linux和ubuntu的区别有:概念不同,linux是一套免费使用和自由传播的类Unix操作系统,而Ubuntu是一个以桌面应用为主的linux操作系统。linux是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作...
    99+
    2024-04-02
  • docker和kubernetes有什么区别
    Docker和Kubernetes都是用于容器化应用程序的工具,但是它们有不同的功能和用途。 Docker是一种容器化引擎,用于创建...
    99+
    2024-04-08
    docker kubernetes
  • mysql和sql_server有什么区别
    mysql和sql server作为两种关系型数据库管理系统,在数据类型、语法、平台支持、许可证、数据库大小限制、性能以及数据库管理工具等方面存在差异。 MySQL和SQL Serve...
    99+
    2024-03-15
    mysql sql server management studio 并发请求
  • swoole和redis有什么区别
    本篇内容主要讲解“swoole和redis有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“swoole和redis有什么区别”吧!区别:1、redis是由“Salvatore Sanfi...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作