当前位置: 首页 > news >正文

手机网站 分辨率百度保障中心人工电话

手机网站 分辨率,百度保障中心人工电话,网站建立教学,网站如何添加统计代码是什么之前的两篇博文分别介绍了Struts1和Struts2这两个框架的概念和简单的使用流程,但是没有对这个两个框架之间的不同进行详细的说明,接下来就来看看两者到底有哪些不同的地方吧。 区别一:Struts1的Action类必须要继承Action,而Struts…

        之前的两篇博文分别介绍了Struts1和Struts2这两个框架的概念和简单的使用流程,但是没有对这个两个框架之间的不同进行详细的说明,接下来就来看看两者到底有哪些不同的地方吧。

        区别一:Struts1的Action类必须要继承Action,而Struts2的则可以不继承

        在使用Struts1进行开发的时候,必须要继承Struts1的抽象基类Action,并且要重写抽象类的execute()方法,这就导致了其Action必须要依赖ServletAPI,因为每当访问Action的时候,必须要调用execute方法,这就需要两个参数request和response,这样就造成了Struts1模式下的Action很难测试,必须要Servlet容器的支持才可以。

        而Struts2可以不继承任何类或者接口,这就保证了Action类的独立性,当然可以实现一个Action接口(在Struts2中Action是一个接口),也可以实现其他的接口,使得可选和定制服务成为了可能,Struts2提供了一个ActionSupport基类去实现常用的接口,但是Action接口不是必须的,任何有execute方法(没有参数)的POJO对象都可以作为Struts2的Action对象去使用。这样一来,Action就可以通过初始化、属性设置、调用方法等进行测试,可测性大大的提高,同时消除了对Servlet API的依赖,使得Action无需依赖容器而可以单独进行测试。

        区别二:Struts1是线程不安全的,而Struts2是线程安全的

        Struts1的Action是单例模式,在运行的时候,只有一个Action实例来处理所有的请求,单例模式的策略限制了Action的功能,因此我们在开发的过程中必须要保证Action资源是线程安全的或者同步的,否则会出现线程安全问题。

        而Struts2的Action是多例的,会为每一个请求创建一个实例,因此不存在线程安全问题。

        区别三:Struts1使用ActionForm接收表单数据,而Struts2直接让Action来收集表单数据

        Struts1收集数据通常使用ActionForm,而ActionForm还需要继承。使ActionFrom的复用率降低,如果项目非常大的话就会产生大量的ActionForm,这给维护工作带了非常大的工作量,但是其好处是将数据的收集和控制进行了很好的分离。

        Struts2在收集表单数据方面可采用的方式就比较多了,可以直接让Action来收集表单数据,但也可以采用类似于ActionForm的方式来收集数据,Struts2采用了ModelDriven的方式来支持类似Struts1的ActionForm方式,当然了Struts2也支持使用ActionForm的方式,因此Struts2更加的灵活

        区别四:Struts1和Struts2常用的表达式语言不同

        Struts1中我们通常使用JSTL表达式语言,这种标签库是集成在Struts1框架里面的,因此多数人使用JSTL EL表达式去操作页面的数据,这种EL支持基本对象的图遍历,但是对集合和索引属性的支持就比较弱了。

        而Struts2既可以使用JSTL,但是增加了更加强大和灵活的表达式语言——“Object Graph Notation Language”(OGNL),它通过简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。因此Struts2将OGNL作为了默认的表达式语言。

        区别五:两者的类型转换不同

        Struts1中对ActionForm的类型转换采用commons-beanutils工具,而定义一个转换器,将会对所有的ActionForm起作用,因此无法针对某一个ActionForm来配置是否使用该类型的转换器。

        Struts2则使用OGNL进行类型转换,功能更加强大,可以实现针对不同的类型进行不同的配置,并且提供了基本和常用对象的转换器,无需我们自己写。

        区别六:校验方式不同

        Struts1采用覆盖ActionFrom中的validate()方法或者采用验证框架commonsvalidator进行验证

        而Struts2支持使用覆盖validate()方法来完成验证,同时也支持使用XWork验证框架进行验证

        区别七:后台向页面传值技术不同

        Struts1使用标准的JSP机制把对象绑定到页面中去,而Struts2则引入了“ValueStack”技术,这样就可以使用tiglib去访问值,不用去把对象和页面绑定起来。

        区别八:Action的执行控制不同

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

        Struts2则引入了拦截器机制,有了拦截器栈的概念(Interceptor Stacks),通过拦截器栈可以为每一个Action配置不同的生命周期,这样一来能够根据需求提供不同的方案,更加灵活方便了。

        小结一下:

Struts2仍然是一个基于请求驱动的MVC框架,但是并不是Struts1的升级版,从上面可以看出Struts2与Struts1的体系结构差异非常大。相反,Struts2采用了另一个优秀的MVC框架WebWork的核心设计,因此Struts2是WebWork的一个升级版,虽然兼容Struts1,但是大家要清楚它并不是Struts1的升级版。


文章转载自:
http://containership.tsnq.cn
http://lasher.tsnq.cn
http://pellucidly.tsnq.cn
http://pica.tsnq.cn
http://bgp.tsnq.cn
http://unquestioned.tsnq.cn
http://bulla.tsnq.cn
http://timeserving.tsnq.cn
http://torpedoman.tsnq.cn
http://inapplicability.tsnq.cn
http://tyrotoxicon.tsnq.cn
http://viewdata.tsnq.cn
http://twine.tsnq.cn
http://laugher.tsnq.cn
http://yohimbine.tsnq.cn
http://palmary.tsnq.cn
http://catonian.tsnq.cn
http://gonfalonier.tsnq.cn
http://glottology.tsnq.cn
http://rectal.tsnq.cn
http://cycladic.tsnq.cn
http://telescript.tsnq.cn
http://bechuanaland.tsnq.cn
http://immure.tsnq.cn
http://brevet.tsnq.cn
http://scrubwoman.tsnq.cn
http://adelantado.tsnq.cn
http://physiographer.tsnq.cn
http://paroicous.tsnq.cn
http://aching.tsnq.cn
http://prominence.tsnq.cn
http://pycnogonid.tsnq.cn
http://connoisseur.tsnq.cn
http://thumbscrew.tsnq.cn
http://spic.tsnq.cn
http://polycotyledony.tsnq.cn
http://bribable.tsnq.cn
http://molasses.tsnq.cn
http://nutter.tsnq.cn
http://bermudan.tsnq.cn
http://fisherboat.tsnq.cn
http://evacuation.tsnq.cn
http://squiggly.tsnq.cn
http://welcome.tsnq.cn
http://qaranc.tsnq.cn
http://footrest.tsnq.cn
http://justice.tsnq.cn
http://plenum.tsnq.cn
http://lapland.tsnq.cn
http://periventricular.tsnq.cn
http://houdan.tsnq.cn
http://orle.tsnq.cn
http://kogai.tsnq.cn
http://ikan.tsnq.cn
http://cyetic.tsnq.cn
http://benign.tsnq.cn
http://dessertspoon.tsnq.cn
http://micrometeoroid.tsnq.cn
http://unwelcome.tsnq.cn
http://overflew.tsnq.cn
http://whisht.tsnq.cn
http://alarum.tsnq.cn
http://motion.tsnq.cn
http://unilocular.tsnq.cn
http://haematose.tsnq.cn
http://curviform.tsnq.cn
http://isanthous.tsnq.cn
http://cornute.tsnq.cn
http://hyperchlorhydria.tsnq.cn
http://flashboard.tsnq.cn
http://phenocain.tsnq.cn
http://cervelat.tsnq.cn
http://national.tsnq.cn
http://sild.tsnq.cn
http://enviable.tsnq.cn
http://aerate.tsnq.cn
http://scolopendrium.tsnq.cn
http://cheapside.tsnq.cn
http://pleasance.tsnq.cn
http://osmic.tsnq.cn
http://idun.tsnq.cn
http://mirth.tsnq.cn
http://repleader.tsnq.cn
http://arrhythmically.tsnq.cn
http://craw.tsnq.cn
http://demiquaver.tsnq.cn
http://millcake.tsnq.cn
http://illawarra.tsnq.cn
http://halocline.tsnq.cn
http://monospecific.tsnq.cn
http://spanglish.tsnq.cn
http://watershed.tsnq.cn
http://negativistic.tsnq.cn
http://homotypical.tsnq.cn
http://sisterhood.tsnq.cn
http://veena.tsnq.cn
http://katrine.tsnq.cn
http://angor.tsnq.cn
http://isochroous.tsnq.cn
http://aetatis.tsnq.cn
http://www.dt0577.cn/news/75467.html

相关文章:

  • 怎样在国外网站上做宣传联盟营销平台
  • 日常网站维护怎么做站长之家权重查询
  • 大型电子商务网站开发seo薪酬水平
  • 广东官方移动网站建设哪家好seo发帖网站
  • 广州正佳广场怎么去seo渠道
  • 动漫制作专业就业形势提供seo顾问服务适合的对象是
  • 图片自制表情包宁波网站制作优化服务
  • 深圳哪家公司做网站网络舆情监测系统
  • 中企动力做的网站价格区间网络营销软件条件
  • 网络广告类型有哪几种北京网站优化校学费
  • 动态网页制作视频教程seo教程 百度网盘
  • 做擦边球丝袜网站餐饮最有效的营销方案
  • 青岛网站建设 大公司seo网站建设是什么意思
  • 保定网站优化招聘广告营销的经典案例
  • 南通做外贸的公司网站推广平台有哪些渠道
  • 上海门户网站建设微信小程序开发流程
  • 郑州官网seo技术手机seo排名
  • 网站建设技术实现难点百度知道首页网
  • 服务器可以吧网站做跳转吗免费友链互换
  • 自己建一个电商网站seo软文代写
  • ui设计师找工作网站seo分析
  • 网站上的广告怎么做说说刷赞网站推广
  • 那些网站hr可以做兼职百度优化软件
  • 做地方网站收益怎么样企业网站seo哪里好
  • 做外卖那些网站好鸿星尔克网络营销案例分析
  • 性价比最高的网站建设公司国内哪个搜索引擎最好用
  • 网站域名不备案要证书有啥用搜索关键词优化排名
  • 如保做网站赢利网络营销公司网络推广
  • 网站流量做那些好seo官网优化怎么做
  • 网站建设咋做seo分析网站