Struts2的介绍
Struts2的介绍
制作人:全心全意
Struts引用的是MVC(Model-View-Controller,模型-视图-控制器)设计理念。目前,JavaWeb应用MVC设计理念的框架有很多,如Struts、JSF、Tapestry、Spring MVC等,Struts框架的应用最为广泛。
Struts框架目前拥有两个主要的版本,分别为Struts1.x版本与Struts2.x版本。
2001年6月发布了Struts1版本,其MVC架构如下图所示:
在Struts1的MVC架构中,各层结构功能如下:
控制器:在Struts1的MVC架构中,使用中央控制器ActionServlet充当控制层,将请求分发配置在配置文件struts.cfg.xml中,当客户端发送一个HTTP请求时,将由Struts的中央控制器对请求进行分发处理,在处理之后,返回ActionForward对象将请求转发到指定的JSP页面,对客户端进行回应。
模型:模型层主要由Struts中的ActionForm及业务Java Bean实现,其中ActionFrom对象对表单数据进行封装,它能够与网页表单进行交互并传递数据;业务Java Bean用于处理真正的业务请求,由Action进行调用。
视图:视图主要指用户看到并与之交互的界面,即Java Web应用程序的外观。在Struts1框架中,Struts提供的标签库增强了JSP页面的功能,并通过Struts标签库与JSP页面实现视图层。
相对于Struts1框架而言,Struts2是一个全新的框架,Struts2的结构体系与Struts1的结构体系有很大的区别。
Struts2框架是在WebWork框架的基础上发展而来的,它是WebWork技术与Struts技术的结合,在WebWork中,Action对象不再与Servlet API向耦合,它可以在脱离Web容器的情况下运行,而且还提供了自己的IoC(Inversion of Control)容器增强了程序的灵活性,通过控制反转使程序测试更加简单。其结构体系如下图所示:
Struts2通过过滤器拦截要处理的请求,当客户端发送一个HTTP请求时,需要经过一个过滤器链,这个过滤器链包括ActionContextClearUp过滤器、其他Web应用过滤器及StrutsPrepareAndExecuteFilter过滤器,其中StrutsPrepareAndExecuteFilter过滤器是必须要配置的。
当StrutsPrepareAndExecuteFilter过滤器被调用时,Action映射器将查找需要调用的Action对象,并返回Action对象的代理。接下来Action代理将从配置管理器中读取Struts2的相关配置(struts.xml),读取完成后,Action容器调用指定的Action对象,在调用Action对象之前需要经过Struts2的一系列拦截器。拦截器与过滤器的原理相似,从结构图中可以看出它的两次执行顺序是相反的。
当Action处理请求后,将返回相应的结果视图(JSP、FreeMarker等)在这些视图中可以使用Struts标签显示数据及对数据逻辑方面的控制,最后HTTP请求回应给浏览器,在回应的过滤中同样经过过滤器链。
Struts的官方网站是https://struts.apache.org,在该网站上可以获取Struts的所有版本及帮助文档。
开发Struts2项目常见需要的类库文件:
struts2-core:Struts2的核心类库
xwork-core:Xwork的核心类库
ognl:Ognl表达式语言类库
commons-logging:Log4j日志支持类库
freemarker:Freemarker模板语言支持类库
commons-io:处理IO操作的工具类库
commons-fileupload:文件上传支持类库
Struts2的介绍的更多相关文章
- Struts2 入门介绍(一)
一.什么是Struts2 1.Struts2是一个开发框架,应用于JavaEE三层架构中的web层. 2.Struts2框架是在Struts1和webwork基础上发展的一个全新的框架. 3.Stru ...
- struts2基本介绍
前言 文本 Struts2 Apache SoftWare Foundation Tomcat/Struts1/Struts2/Ibaitas/ MVC框架:Struts1/Struts2/JSF/W ...
- struts2总体介绍
这篇博客开始将总结一下有关框架的知识,在开发中合适的利用框架会使我们的开发效率大大提高.当今比较流行的开源框架: 关注数据流程的MVC框架 (Struts1/2, WebWork, Spring MV ...
- Struts2体系介绍
回顾Struts2,在会用基础上重看的理解. Struts 2框架架构流程 一个请求在Struts 2框架中的处理大概分为以下几个步骤. (1) 客户端提交一个HttpServletRequest请求 ...
- Struts2入门介绍(二)
一.Struts执行过程的分析. 当我们在浏览器中输入了网址http://127.0.0.1:8080/Struts2_01/hello.action的时候,Struts2做了如下过程: 1.Stru ...
- Struts2(1) —— 概述
1.Struts2框架介绍 Struts2框架是MVC流程框架,适合分层开发,框架应用实现不依赖于Servlet,使用大量的拦截器来处理用户请求,属于无侵入式的设计. 2.Struts2框架的流程原理 ...
- (一)问候Struts2
第一节:Struts2 简介 主页:http://struts.apache.org/在用户请求和模块化处理方面以及页面的展现这块,Struts2 发挥的屌炸天作用:相对于传统的Jsp+Servlet ...
- 初窥struts2(二)OGNL表达式
Struts2总结 Struts2完整的处理流程: 1 客户端发送请求,交给struts2控制器(StrutsPrepareAndExecuteFilter). 2 Filter控制器进行请求过滤 ...
- Struts2框架学习(一)
Struts2框架学习(一) 1,Struts2框架介绍 Struts2框架是MVC流程框架,适合分层开发.框架应用实现不依赖于Servlet,使用大量的拦截器来处理用户请求,属于无侵入式的设计. 2 ...
随机推荐
- C# winfrom TCP 服务端和客户端(链接)
1.C#Winform TCP 之服务端: 可以参考下面链接,比较好.第二个链接可以看看,提供了一个思路. http://www.cnblogs.com/guolebin7/archive/2013/ ...
- RDA PQ工具使用 (屏参调整)
使用客户规格书,制作屏参文件. 注意:,必填区和计算区,必填区根据屏参的SPEC填写,具体的屏参文件参数通过点击“Calc Sync”生成. 如:HV320WHB-N81的SPEC: 打开“Color ...
- redirect和forward 的区别
1.从地址栏显示来说 forward 是服务器请求资源,服务器直接访问目标地址url,把那个url的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容从哪里来的,所以他的地 ...
- Java DAO模式
DAO模式: DAO(DateAccessObject,数据存取对象) 位于业务逻辑和持久化数据之间,实现对持久化数据的访问. DAO组成: DAO接口: 数据库的所有操作定义成抽象方法,可以提供多种 ...
- bzoj 1093: [ZJOI2007]最大半连通子图【tarjan+拓扑排序+dp】
先tarjan缩成DAG,然后答案就变成了最长链,dp的同时计数即可 就是题面太唬人了,没反应过来 #include<iostream> #include<cstdio> #i ...
- [转]C++常用字符串分割方法实例汇总
本文实例汇总了C++常用字符串分割方法,分享给大家供大家参考.具体分析如下: 我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用. 一.用strtok函数进行字符串分割 原 ...
- GIT学习之路第四天 远程仓库
本文参考廖雪峰老师的博客进行总结,完整学习请转廖雪峰博客 git的服务器---Github,自行注册github账号后,按下面的步骤操作: 第一步,事实上,本地Git仓库和Github仓库之间的传输是 ...
- 400 Nth Digit 第N个数字
在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...中找到第 n 个数字.注意:n 是正数且在32为整形范围内 ( n < 231).示例 1:输入:3 ...
- 聊聊MyBatis缓存机制
https://tech.meituan.com/mybatis_cache.html 前言 MyBatis是常见的Java数据库访问层框架.在日常工作中,开发人员多数情况下是使用MyBatis的默认 ...
- MySql数据查询中 left join 条件位置区别
/*A 和 B 两张表都只有一个 ID 字段 比如A表的数据为 ID 1,2,3,4,5,6 B表的数据为 ID 1,2,3 判断 JOIN 查询时候条件在 ON 和 WHERE 时的区别 ON 和 ...