原始内容: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. Consul实现原理系列文章3: Consul的整体架构

    工作中用到了Consul来做服务发现,之后一段时间里,我会陆续发一些文章来讲述Consul实现原理.在前几篇文章介绍完了Consul用到的两个关键性东西Raft和Gossip之后,这篇文章会讲述Con ...

  2. plsql programming 10 日期和时间戳

    年 月 日 时 分 秒 时区 用小时表示的相对于 UTC 的时差 用分钟表示的相对于 UTC 的时差 date 存储日期和时间, 不带时区, 精确到秒 timestamp 存储日期和时间, 不带时区, ...

  3. JavaScript 与 Java 是两种完全不同的语言,无论在概念还是设计上。

    JavaScript 与 Java 是两种完全不同的语言,无论在概念还是设计上. Java(由 Sun 发明)是更复杂的编程语言. ECMA-262 是 JavaScript 标准的官方名称. Jav ...

  4. jQuery.getJSON()方法小记

    今天看了下jQquery中的getJSON()方法,做点小结: 原型: jQuery.getJSON( url [, data ] [, success(data, textStatus, jqXHR ...

  5. urllib -- ProxyHandler处理器(代理设置)

    import urllib.requestimport randomimport ssl proxy_list = [ {"https" : "196.61.27.58: ...

  6. urllib基本使用 urlopen(),Request

    urllib包含的常用模块:import urllib.request # 打开和读取url请求import urllib.error # 异常处理模块import urllib.parse # ur ...

  7. AsyncTask工作机制简介

    昨天写的图片的三级缓存,假设有兴趣,能够去看下,浅谈图片载入的三级缓存原理(一) http://blog.csdn.net/wuyinlei/article/details/50606455 在里面我 ...

  8. Android Studio3.0 配置ButterKnife出错的解决

    需要注意的问题: (1)ButterKnife.bind(this);必须在设置布局之后进行初始化: 官方升级到了8.8.1了 compile 'com.jakewharton:butterknife ...

  9. Python 使用MySQL

    在导入MySQLdb之前,需要安装MySQLdb模块.使用pip安装,命令如下: pip install MySQL-python 安装成功后,导入MySQLdb模块 import MySQLdb 连 ...

  10. Android无线测试之—UiAutomator UiDevice API介绍四

    拖拽与滑动 一.概念介绍: 1)拖拽:将组建从一个坐标移动到另一个坐标 2)移动:从一二坐标点移动到另一个坐标点 3)步长:从一点滑动到另一点使用的时间 二.拖拽与滑动的相关API: 返回值 方法名 ...