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. Arduino-1602-LiquidCrystal库

    前言:LiquidCrystal是一个1602的IIC库,使用IIC协议可以极大节约用线数量,十分方便.当然,前提是1602要使用LCD1602 I2C模块. 一.库函数快速查询 LiquidCrys ...

  2. Html Ajax上传文件,form表单下载文件

    Html中的代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&quo ...

  3. JavaScript数组和json的区别

    <html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...

  4. DataTable的Select()方法

    DataRow[] partno = dtPack.Select("PK_SOHEAD = " + pk_sohead + " AND PART_NO = '" ...

  5. 三维重建:深度相机方案对比-KinectFusion的基本原理(尺度)

    算法原理请参考此文:  kinect fusion 3D重建基本算法  http://log.csdn.net/xiaohu50/article/details/51592503 三维重建为三维空间实 ...

  6. RxSwift源码与模式分析一:基本类

    封装.变换与处理 // Represents a push style sequence. public protocol ObservableType : ObservableConvertible ...

  7. <转>Socket编程——基础介绍

    最近系统的看了下unix网络编程的一些内容,对socket的理解有了进一步的加深,在看APUE的时候,那会儿看socket上面介绍的比较少,只是模糊的懂了如何去写一个简单的TCP服务端和客户端,对其中 ...

  8. Chernobyl’ Eagle on a Roof(鹰蛋坚固度)

    链接 Chernobyl’ Eagle on a Roof 题意 引用论文题意:有一堆共 M 个鹰蛋,一位教授想研究这些鹰蛋的坚硬度 E.他是通过不断从一幢 N 层的楼上向下扔鹰蛋来确定 E 的.当鹰 ...

  9. UML类图解析

    上面是UML的语法. 在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(Dependency)和关联(Associati ...

  10. UVA-11806 Cheerleaders 计数问题 容斥定理

    题目链接:https://cn.vjudge.net/problem/UVA-11806 题意 在一个mn的矩形网格里放k个石子,问有多少方法. 每个格子只能放一个石头,每个石头都要放,且第一行.最后 ...