Struts2概述及与Struts1的对照
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的对照的更多相关文章
- Struts2概述
-------------------siwuxie095 Struts2 概述 1.Struts2 是应用在 Java EE 三层架构中的 Web 层的框架 2.Struts2 是在 Struts1 ...
- Struts2 概述
1. struts2应用在javaee三层结构中web层框架 2. struts2框架在struts1和webwork基础之上的发展全新的框架 3.struts2 解决的问题: 用户管理的crud操作 ...
- Struts2的优点与Struts1的区别:
单实例与多实例有状态就是有数据存储功能,比如购物车,买一件东西放进去,可以再次购买或者删减.无状态就是一次操作,不能保存数据. 有状态对象,就是有成员属性的对象,可以保存数据,是非线程安全的.无状态对 ...
- Struts2框架学习第一章——Struts2概述
本章要点 — Web应用的发展 — Model 1和Model 2 — MVC思想 — MVC模式的优势 — 常用MVC框架及其特征 — Struts 1的基本结构及其存在的问题 — We ...
- Struts2笔记02——Struts2 概述(转)
原始内容:https://www.tutorialspoint.com/struts_2/basic_mvc_architecture.htm Struts2是基于MVC设计模式的一种流行.成熟的We ...
- Struts2学习第二课 Struts2概述
Struts2是一个用来开发MVC应用程序的框架,它提供了Web应用程序开发过程中的一些常见问题飞解决方案: -对来自用户的输入数据进行合法性验证 -统一的布局 -可扩展性 -国际化和本地化 -支持A ...
- 第1章-Struts2 概述 --- Struts2和MVC
(一)Struts2和MVC的关系图: (1)控制器---FilterDispatcher 用户请求首先达到前段控制器(FilterDispatcher).FilterDispatcher负责根据用户 ...
- 1:1 Struts2概述
jar包下载
- Struts1和Struts2对照
最近学习Struts1和Struts2.好多人.提到非常多的信息. Struts2不从Struts1进化. Struts2的前身WebWork. 呢,看了一些资料,下边就来比較比較. 一.架构分析 S ...
随机推荐
- Arduino-1602-LiquidCrystal库
前言:LiquidCrystal是一个1602的IIC库,使用IIC协议可以极大节约用线数量,十分方便.当然,前提是1602要使用LCD1602 I2C模块. 一.库函数快速查询 LiquidCrys ...
- Html Ajax上传文件,form表单下载文件
Html中的代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&quo ...
- JavaScript数组和json的区别
<html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...
- DataTable的Select()方法
DataRow[] partno = dtPack.Select("PK_SOHEAD = " + pk_sohead + " AND PART_NO = '" ...
- 三维重建:深度相机方案对比-KinectFusion的基本原理(尺度)
算法原理请参考此文: kinect fusion 3D重建基本算法 http://log.csdn.net/xiaohu50/article/details/51592503 三维重建为三维空间实 ...
- RxSwift源码与模式分析一:基本类
封装.变换与处理 // Represents a push style sequence. public protocol ObservableType : ObservableConvertible ...
- <转>Socket编程——基础介绍
最近系统的看了下unix网络编程的一些内容,对socket的理解有了进一步的加深,在看APUE的时候,那会儿看socket上面介绍的比较少,只是模糊的懂了如何去写一个简单的TCP服务端和客户端,对其中 ...
- Chernobyl’ Eagle on a Roof(鹰蛋坚固度)
链接 Chernobyl’ Eagle on a Roof 题意 引用论文题意:有一堆共 M 个鹰蛋,一位教授想研究这些鹰蛋的坚硬度 E.他是通过不断从一幢 N 层的楼上向下扔鹰蛋来确定 E 的.当鹰 ...
- UML类图解析
上面是UML的语法. 在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(Dependency)和关联(Associati ...
- UVA-11806 Cheerleaders 计数问题 容斥定理
题目链接:https://cn.vjudge.net/problem/UVA-11806 题意 在一个mn的矩形网格里放k个石子,问有多少方法. 每个格子只能放一个石头,每个石头都要放,且第一行.最后 ...