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 ...
随机推荐
- JFreeChart基础(1) (转自 JSP开发技术大全)
JFreeChart基础(1) (转自 JSP开发技术大全) JFreeChart是一个Java开源项目,是一款优秀的Java图表生成插件,它提供了在Java Application.Servlet和 ...
- Linux Centos 下安装软件 三种方式
1)一种是软件的源代码,您需要自己动手编译它.这种软件安装包通常是用gzip压缩过的tar包(后缀为.tar.gz). 2)另一种是软件的可执行程序,你只要安装它就可以了.这种软件安装包通常被是一个R ...
- 类型配置命名空间 —— XML schema
对于基于 XML 的配置,Spring 2.0 以后告别 DTD 格式(Document Type Definition)的配置文件,开始采用 Schema 格式,Schema 的突出亮点即是可让不同 ...
- Java集合类解析 ***
collection集合 Map集合 Hashtable和HashMap的区别: Hashtable的方法是同步的,而HashMap的方法不是.HashMap可以将空值作为一个表的条目的key或val ...
- 17年day4
/* 嗯,又一天 上午考试,睡了两觉(我不会把我第二觉流了口水这件事说出去) 状态比较玄学,上午困得要死,下午无比精神(感觉NOIP要完). 复习了概率期望.发现以前做过的题还是不会做,好像连印象都比 ...
- sql注入方法以及防范
sql注入方法: 1.数字注入 ; get请求 www.bobo.com?id=1 可以查出 ID等于1的一条数据. 如果有人在链接后面增加 www.bobo.com?id=1 or 1=1 / w ...
- mysql插入二千万的测试数据进行测试,int和datetime比较
时间存储用int和datetime哪个字段更合适,建立下面的两个表 测试环境是内存2个G,一核的虚拟机 CREATE TABLE `test_inttime` ( `id` int(11) NOT N ...
- 数学/思维 UVA 11300 Spreading the Wealth
题目传送门 /* 假设x1为1号给n号的金币数(逆时针),下面类似 a[1] - x1 + x2 = m(平均数) 得x2 = x1 + m - a[1] = x1 - c1; //规定c1 = a[ ...
- 题解报告:hdu 2588 GCD(欧拉函数)
Description The greatest common divisor GCD(a,b) of two positive integers a and b,sometimes written ...
- TensorFlow---基础---GFile
使用TensorFlow的时候经常遇到 tf.gfile.exists().... 关于gfile,一个googler是这样给出的解释: The main roles of the tf.gfile ...