原始内容:https://www.tutorialspoint.com/struts_2/basic_mvc_architecture.htm

Struts2是基于MVC设计模式的一种流行、成熟的Web应用框架。

它不仅仅是Struts1的下一个版本,更是对Structs架构的一个完整重写。

而WebWork则是以Struts框架为基础的一个框架,它的目标是提供一个基于Struts的增强、改进框架,使开发人员更轻松地进行Web开发

在一段时间后,Webwork框架和Struts社区携手共同创建了著名的Struts2框架。

Struts2 框架特性

  • POJO forms and POJO actions - Struts2已经完成了作为Struts框架组成部分的Action Forms。通过Struts2,你可以使用任何POJO来接收表单数据。同样,你现在可以看到任何POJO充当Action类。

  • Tag support - Struts2已经改进了表单标签,新标签允许开发人员编写更少的代码。

  • AJAX support - Struts2已经认可并接纳了Web2.0 技术, 并通过创建与标准Struts2标签非常相似的AJAX标签将AJAX集成到产品中。

  • Easy Integration - 与其他框架(如Spring,Tiles和SiteMesh)的集成现在可以通过Struts2可用的各种集成来实现。

  • Template Support - 支持使用模板生成视图。

  • Plugin Support - 可以通过使用插件来增强和扩充核心的Struts2行为;Struts2有许多可用的插件。

  • Profiling - Struts2提供集成分析来调试和配置应用程序。除此之外,Struts还提供了内置调试工具的集成调试功能。

  • Easy to modify tags - 可以使用Freemarker模板调整Struts2中的 Tag markups。这不需要JSP或java知识。基本的HTML,XML和CSS知识足以修改标签。

  • Promote less configuration - Struts2通过使用各种设置的默认值来促进更少的配置。您不必配置某些东西,除非它偏离了由Struts2设置的默认设置。

  • View Technologies: - Struts2支持多种视图(JSP,Freemarker,Velocity和XSLT)

以上仅仅是Struts 2的十大特性。

Struts2 的缺点

虽然Struts 2附带了一些很棒的功能,但是也有一些缺点,仍需要大量的改进:

  • 更复杂的学习曲线 - 要使用MVC与Struts,你必须适应使用标准的JSP,Servlet API和一个庞大而精致的框架。

  • 文档缺乏 - 与标准的servlet和JSP API相比,Struts的在线资源较少,并且Apache文档很混乱、组织方式极差。

  • 透明度较低 - 使用Struts应用程序,与使用常规的基于Java的Web应用程序相比,后台有更多的操作,这使得框架很难以理解。

最后要说明的是,一个好的框架应该提供“更通用的行为”,以便不同类型的应用程序可以更好地利用它。Struts 2是最好的Web框架之一,被高度应用于开发富互联网应用(RIA)。

Struts2笔记02——Struts2 概述(转)的更多相关文章

  1. struts2 笔记02 文件上传、文件下载、类型转换器、国际化的支持

    Struts2的上传 1. Struts2默认采用了apache commons-fileupload  2. Struts2支持三种类型的上传组件 3. 需要引入commons-fileupload ...

  2. Struts2笔记1:--Struts2原理、优点、编程流程、6大配置文件以及核心配置文件struts.xml

    Struts2原理(底层使用的是Servlet的doFilter方法): Struts2优点: 第一个Struts程序: 在开发Struts程序之前,首先要导入额外的jar包,基本需求的是14个jar ...

  3. struts2笔记(3)

    关于回显: 如果是int型,默认就会回显为0,如果不想让回显,则Integer就好 //**************************************声明式验证************* ...

  4. Struts2笔记分享(一)

    Struts2概述1.简介Struts就是在Model2的基础上实现的一个MVC框架,它只有一个中心控制器,采用XML定制的转向的URL,采用Action来处理逻辑.2.Struts2的MVC模式MV ...

  5. struts2笔记

    Struts2 中, HTML 表单将被直接映射到一个 POJO,通过params拦截器,类中定义对应属性,及对应set方法即可. Struts2 中,任何一个POJO都可以是一个action类. S ...

  6. struts2笔记01-环境搭建

    1.官网下载struts2 struts-2.3.28-all.zip,这个包可谓应有尽有,以后全靠它了! 2.jar包怎么选?       (1)struts-2.3.28-all\struts-2 ...

  7. Struts2笔记1

    一.简介 1.作用于web层:Struts2是一种基于MVC模式的轻量级Web框架; 2.各文件夹简介:     apps:该文件夹存用于存放官方提供的Struts2示例程序,这些程序可以作为学习者 ...

  8. Struts2入门1 Struts2基础知识

    Struts2入门1 Struts2基础知识 20131130 代码下载: 链接: http://pan.baidu.com/s/11mYG1 密码: aua5 前言: 之前学习了Spring和Hib ...

  9. OGG学习笔记02

    实验环境:源端:192.168.1.30,Oracle 10.2.0.5 单实例目标端:192.168.1.31,Oracle 10.2.0.5 单实例 1.模拟源数据库业务持续运行 2.配置OGG前 ...

随机推荐

  1. 使用google地图API

    1.获取key 2.获取相应地方的坐标:https://support.google.com/maps/answer/18539?co=GENIE.Platform%3DDesktop&hl= ...

  2. python 集合set remove update add

    1. 集合(set):把不同的元素组成一起形成集合,是python基本的数据类型. 集合对象是一组无序排列hashable value:集合成员可以做字典的键. 集合就像是 list 和 dict 的 ...

  3. 初窥ElasticSearch

    初窥ElasticSearch 官网上面的,不知道讲的是什么.. youtube上面有一个start with,内容是在windows以下跑这个elastic search,然后用一个fidler工具 ...

  4. 改动MySQL数据库port号 2.0

    这里通过改动数据库服务启动时的配置文件来达到改动的目的 Linux下的配置文件夹文件(演示样例):/usr/local/mysql/my.cnf [mysqld] # Remove leading # ...

  5. 第二十二篇:C++中的多态机制

    前言 封装性,继承性,多态性是面向对象语言的三大特性.其中封装,继承好理解,而多态的概念让许多初学者感到困惑.本文将讲述C++中多态的概念以及多态的实现机制. 什么是多态? 多态就是多种形态,就是许多 ...

  6. filter、map函数的区别

    def even(num): if num%2==0: return True return False lis = [1,2,3,4,5,6,7,8,9] res = filter(even,lis ...

  7. jmeter对响应结果做正则、json、xpath结果测试

    上面的返回结果可用于关联取值测试 具体用法详见http://www.cnblogs.com/xinjing-jingxin/p/8554338.html http://goessner.net/art ...

  8. 单片机c语言教程:C51循环语句

    单片机c语言教程第十三课 C51循环语句 循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 ...

  9. android菜鸟学习笔记30----Android使用百度地图API(一)准备工作及在应用中显示地图

    1.准备工作: 百度地图API是免费开放的,但是需要申请API Key: 1)先注册一个百度开发者帐号 2)进入百度开放服务平台http://developer.baidu.com/ 3)进入LBS云 ...

  10. spark2.0.2基于hadoop2.4搭建分布式集群

    一.Scala安装 因为spark的版本原因,所以Scala我用的2.11.7. 下载目录http://www.scala-lang.org/download/ 拷贝到要安装的地址,我的地址是/usr ...