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. [xPlugins] jQuery Contextmenu右键菜单

    [2012-04-12] Contextmenu 右键菜单 v0.1 版本发布 [功能] 在特定区域弹出右键菜单 [功能] 可以在弹出右键菜单区域内,再屏蔽某个小区域. [功能] 有两种方式添加右键菜 ...

  2. 09-JavaScript高级

    今日知识 1. Dom(文档对象模型) 2. Bom(浏览器对象模型) 3. 总结 Dom 1. 获取id为div1的元素对象. * var result=document.getElementByI ...

  3. 阿里云 linux centos 常用解压命令

    格式:  tar  选项  文件目录列表     功能:  对文件目录进行打包备份     选项: -c 建立新的归档文件 -r 向归档文件末尾追加文件 -x 从归档文件中解出文件 -O 将文件解开到 ...

  4. vue-cli 结构

    . |-- build                            // 项目构建(webpack)相关代码 |   |-- build.js                     // ...

  5. WebService 服务接口

    天气预报Web服务,数据来源于中国气象局Endpoint :http://www.webxml.com.cn/WebServices/WeatherWebService.asmxDisco :http ...

  6. epoll的实现与深入思考

    提契 纸上得来终觉浅,绝知此事要躬行. 正文 前段时间写了一篇epoll的学习文章,但没有自己的心得总觉得比较肤浅,花了一些时间补充一个epoll的实例,并浅析一下过程中遇到的问题. 上epoll_s ...

  7. gcc和g++的区别和联系

    gcc和g++都是GNU(一个组织)的编译器. 1.对于.c后缀的文件,gcc把它当做是C程序:g++当做是C++程序: 2.对于.cpp后缀的文件,gcc和g++都会当做c++程序. 3.编译阶段, ...

  8. ZBrush中的PolyPainting如何理解?

    什么是PolyPainting? PolyPainting在ZBrush ®中是一种创建纹理的方法,该方法通过对每个多边形顶点应用单一RGB值来着色模型.此方法无需使用UV坐标.通过直接对顶点应用颜色 ...

  9. 在Linux Centos 7.2 上安装指定版本Docker 17.03

    相关资料链接: https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce 先清空下“历史” yum insta ...

  10. 执行opatch apply 报错 OPatch failed with error code 73

    .执行opatch apply 报错 OPatch failed [oracle@ora_11g 14275605]$ /opt/oracle/product/db_1/OPatch/opatch a ...