Struts2 概述

1,仍然是一个基于请求响应的MVC框架

2,Struts2不是Struts1的升级

3,Struts2与Struts1的体系结构差距非常大

4,Struts2採用了还有一个MVC框架WebWork的核心设计

5,Struts2更优秀:松耦合设计。。

Struts1与Struts2的对照

1,Action方面

Struts1的Action必须继承;Struts1是单例的,存在线程安全问题;控制运行方面。Struts1固定不变的

Struts2的Action能够不继承;Struts2是多例的。没有线程安全问题;控制运行方面,Struts2通过拦截器。能够改变运行流程,灵活配置的

2,Servlet API依赖与可測试性

Struts1的Action測试性不好,Struts1中的Action须要依赖Servlet API,由于须要容器支持,由于在Action依赖Servlet API

Struts2的Action測试性不好。Struts2中的Actionk能够不用依赖ServletAPI,能够直接写一个单元測试完毕。由于Struts2的Aciton是一个POJO对象

3,ActionForm方面

Struts1收集数据通常使用ActionForm,而ActionForm还须要继承。使得ActionForm的复用率减少。另外项目非常大会建立非常多ActionForm给维护带来工作量,但也有优点,数据的收集和控制进行非常好的分离。

Struts2能够不用使用ActionForm来收集数据。直接让Action来收集 数据,但也能够採用相似ActionForm的方式来收集数据,Struts2採用ModelDriven的方式来支持相似Struts1的ActionForm方式。所以Struts2更灵活。

4,类型转换与表达式语言方面

Struts1对ActionForm的类型转换採用 commons-beanutils工具。而定义完毕一个转换器,将对全部的ActionForm起作用,而不能针对某一个ActionForm来配置是否使用此类型的转换器。

Struts1中我们通常使用JSTL作为显示层绑定数据的方式。

Struts2使用OGNL进行类型转换。功能更加强大,转换过程能够针对某个类型进行配置。;Struts2中我们能够使用功能更强大的表达式语言OGNL(Object Graph Notation Language)

5,校验

Struts1採用覆盖ActionForm中的validate()方法或採用验证框架commons validator来验证

Struts2支持使用覆盖validate()方法来完毕验证,也支持验证框架XWork来验证。

Struts2概述及与Struts1的对照的更多相关文章

  1. Struts2概述

    -------------------siwuxie095 Struts2 概述 1.Struts2 是应用在 Java EE 三层架构中的 Web 层的框架 2.Struts2 是在 Struts1 ...

  2. Struts2 概述

    1. struts2应用在javaee三层结构中web层框架 2. struts2框架在struts1和webwork基础之上的发展全新的框架 3.struts2 解决的问题: 用户管理的crud操作 ...

  3. Struts2的优点与Struts1的区别:

    单实例与多实例有状态就是有数据存储功能,比如购物车,买一件东西放进去,可以再次购买或者删减.无状态就是一次操作,不能保存数据. 有状态对象,就是有成员属性的对象,可以保存数据,是非线程安全的.无状态对 ...

  4. Struts2框架学习第一章——Struts2概述

    本章要点 —  Web应用的发展 —  Model 1和Model 2 —  MVC思想 —  MVC模式的优势 — 常用MVC框架及其特征 —  Struts 1的基本结构及其存在的问题 —  We ...

  5. Struts2笔记02——Struts2 概述(转)

    原始内容:https://www.tutorialspoint.com/struts_2/basic_mvc_architecture.htm Struts2是基于MVC设计模式的一种流行.成熟的We ...

  6. Struts2学习第二课 Struts2概述

    Struts2是一个用来开发MVC应用程序的框架,它提供了Web应用程序开发过程中的一些常见问题飞解决方案: -对来自用户的输入数据进行合法性验证 -统一的布局 -可扩展性 -国际化和本地化 -支持A ...

  7. 第1章-Struts2 概述 --- Struts2和MVC

    (一)Struts2和MVC的关系图: (1)控制器---FilterDispatcher 用户请求首先达到前段控制器(FilterDispatcher).FilterDispatcher负责根据用户 ...

  8. 1:1 Struts2概述

    jar包下载

  9. Struts1和Struts2对照

    最近学习Struts1和Struts2.好多人.提到非常多的信息. Struts2不从Struts1进化. Struts2的前身WebWork. 呢,看了一些资料,下边就来比較比較. 一.架构分析 S ...

随机推荐

  1. js原生淘宝京东宝贝放大镜效果

    js实现商城放大镜效果 效果: 鼠标放上去会有半透明遮罩.右边会有大图片局部图. 鼠标移动时右边的大图片也会局部移动. 技术点: Event Event 是一个事件对象,当一个事件发生后,和当前事件发 ...

  2. Scrapy日志等级以及请求传参

    日志等级 请求传参 提高scrapy的爬取效率 日志等级 - 日志信息:   使用命令:scrapy crawl 爬虫文件 运行程序时,在终端输出的就是日志信息: - 日志信息的种类: - ERROR ...

  3. LeetCode Weekly Contest 18B

    1. 496. Next Greater Element I 暴力的话,复杂度也就1000 * 1000 = 1e6, 在1s的时限内完全可以. 当然,有许多优化方法,利用stack维护递减序列的方法 ...

  4. .net中的TreeView的数据绑定与EasyUi_tree的数据绑定

    昨天看到了.net中的TreeView,学习了一波TreeView的数据绑定,联想到EasyUi中的Tree的数据,觉得里面的逻辑差不多,就总结了一下两者的数据绑定. 前端页面和必要的JS如下 < ...

  5. RAP、Mock.js、Vue.js、Webpack

    最近做项目使用的是RAP1的接口,但是昨天开始,RAP1 出现了问题,接口都不能用了. 所以补充一下Mock.js的用法,以便在这种突发的情况时候时自己通过Mock的方式来处理接口. npm init ...

  6. 使用JDK和axis2发布webservice

    最近使用webservice进行远程调用一直很火,自从JDK1.6版本发布后,发布一个webservice项目变得更加简单了 笔者由于工作的需要针对JDK和axis2如何发布webservice做过相 ...

  7. Java 方法的应用

    Java方法可以理解为C#中的函数,都是把复杂的问题简单化,按模块,按功能区分,分别完成各个部分在调用这些方法完成整个功能. 方法的综合练习,猜数字的实现: 代码要求: 生成不重复的4位数字(只有1- ...

  8. Ad_hoc_polymorphism 备份

    https://en.wikipedia.org/wiki/Polymorphism_(computer_science) https://en.wikipedia.org/wiki/Ad_hoc_p ...

  9. IDEA使用GsonFormat完成JSON和JavaBean之间的转换

    原文地址:https://www.leshalv.net/posts/12625/ 前言: 之前处理接口传来的一堆数据,用jsonObject很难受,后面就用gosn来弄,配合这个工具体验很好. 转: ...

  10. 很详尽KMP算法(厉害)

    作者:July时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进.后收录于新书<编程之法:面试和算法心得>第4.4节中. 1. 引 ...