Struts2学习笔记(1)-Struts2概览
来源:互联网 发布:淘宝卖小金刚菩提子 编辑:程序博客网 时间:2024/05/19 09:13
一、Struts2
struts2是流行和成熟的一个基于MVC设计模式的Web应用框架。struts的英文单词意思是支柱、支杆,来源于建筑和旧式飞机使用的金属支架。Struts2原来是Jakarta项目的子项目,后来转到Apache软件基金会下的一个开源子项目,Apache软件基金会是为支持开源项目的非盈组织。使用Struts2的目的是为了帮助我们减少在运用MVC设计模式来开发Web应用的时间。
二、MVC模式
MVC是模型视图控制器(Model View Controller),是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。 Java Web开发是由JSP完成的,开发有两种模式: Model1应用是使用JSP+JavaBean技术,将页面显示和业务逻辑处理分开。使用JSP页面实现页面显示,JavaBean对象用来保存数据和实现业务逻辑。这种开发模式适合小型应用程序开发,进行了初步的表达和内容的分离;因为在数据存取方面都是由JavaBean来操作的。Model1并不能满足复杂的大型应用程序。如果大型应用程序采用Model1,会导致在JSP页面中嵌入大量的代码片段或者Java代码,致使代码可读性和可维护性变得很差。 Model2应用使用JSP+Servlet+JavaBean技术,符合MVC模型。JSP作为视图负责界面显示,JavaBean作为模型负责业务逻辑、持久化操作,Servlet作为控制器负责流程控制,Model1模式的优点是彻底分离了业务逻辑和表现逻辑,简化了JSP页面。并且Servlet统一控制页面的跳转流程,方便了维护。解决的Model1导致的代码可读性和可维护性变差的问题。
三、Struts2的发展过程
1. Struts1于2001年发布,是第一个MVC框架。 2. Struts1框架随着发展暴露的问题开始分化。分化为两个框架:struts2和shale。 3. Struts2于2007年发布。Struts2在传统Struts1的基础上,融合了另一个优秀的web框架WebWork。Struts2以webwork为核心。兼具struts1和webwork的优势,在稳定性、性能等方面有很好的保证。 4. Shale框架是由Struts1分化出来的。这个框架远远超出了Struts1的设计思想,与原有的Struts1关联很少,使用了全新的设计思想。更像一个新框架。
四、Struts2的工作流程
流程图如下:
注释:图片引用自百度Struts2体系结果。
工作流程如下:
1. 在项目部署文件(web.xml)中配置过滤器,配置好过滤器。当web项目启动时,过滤器就会生效。 2. 首先用户通过HttpServletRequest将请求发送过来,经过一系列的过滤器,往下执行。ActionContextCleanUp也是过滤器的一个,是可选的过滤器,不是必选的。这个过滤器主要用于和其它的框架进行集成,比如和Other filter(siteMesh,etc)进行集成。 3. 然后到达FilterDispatcher,这是Struts2 2.0~2.1.2版本的核心过滤器。但是我们在web.xml不配置的不是这个过滤器,而是StrutsPrepareAndExecuteFilter这个过滤器,这个过滤器是从2.1.3版本替代了FilterDispatcher。为什么替代?我们想写一个过滤器,往往会放在Struts2的顶端。将写的过滤器加在Struts2拦截之后(即action之前),通过FilterDispatcher是做不到的,而StrutsPrepareAndExecuteFilter可以,这就是替换的目的。 4. 之后会到达ActionMapper,只有.action后缀的才会到达。到达之后去查找当前请求有没有这个action。如果有,就回到核心过滤器,到达ActionProxy。 5. 通过Configuration Manager读取struts.xml文件来找到具体的Action类,然后通过ActionProxy代理创建Action Invocation反向的实例。 6. 经过一系列拦截器,然后执行Action,返回Result字符串对象,对应显示视图。 7. 在经过一系列的拦截器,通过HttpServletResponse返回用户实例显示。
五、Struts2的核心文件
web.xml文件(项目部署文件)
任何MVC框架都需要与web应用整合,这就不得不借助web.xml文件,只有配置在web.xml文件中Servlet菜会被用用加载。 通常,所有的MVC框架都需要Web应用加载一个核心控制器。对于Struts2框架而言,需要加载StrutsPrepareAndExecuteFilter。只要web应用加载这个过滤器,这个过滤器就会将Struts2框架加载。
struts.xml文件
Struts2的核心配置文件,在开发过程中利用率最高。该文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。 struts.xml中包含的内容有:全局属性、用户请求和相应Action之间的对应关系、Action可能用到的参数和返回结果以及各种拦截器的配置等。
struts.properties文件
Struts2框架的全局属性文件,自动加载。该文件包含很多的key-value(键值对)。该文件完全可以使用constant元素配置在struts.xml文件中。
注释:文件具体内容介绍参看相关文件描述。
阅读全文
0 0
- Struts2学习笔记(1)-Struts2概览
- Struts2学习笔记——Struts2概览
- STRUTS2学习笔记(1)
- struts2学习笔记(1)
- Struts2学习笔记(1)
- Struts2 学习笔记(1)
- Struts2学习笔记(1)
- struts2学习笔记(1)
- Struts2学习笔记(1)
- Struts2概览
- Struts2学习笔记1
- Struts2学习笔记1
- Struts2学习笔记(1)
- Struts2学习笔记(1)
- struts2学习笔记1
- struts2学习笔记1
- Struts2学习笔记1
- Struts2学习笔记(1)
- win10+qt5.3+opencv2.4.9+vs2013环境配置及运行实例
- 11月14日云栖精选夜读:轻松使用阿里云资源编排,方便你的API管理
- sqlplus强制登录oracle
- TS 详解
- 1682亿,光鲜背后,双十一的狂欢还可以走多久?
- Struts2学习笔记(1)-Struts2概览
- 你不是不会写方案,只是没思路
- 你和高级产品经理之间,差的不只是经验
- (备忘录)banner循环(1)
- SaaS“免费试用”高转化率的3个秘诀
- 什么是跨域?怎么解决跨域问题?
- 代码审计+企业级Web代码安全架构+.pdf 免费下载
- 本周六的2017中国产品经理大会、又确定了一位重量级嘉宾!
- SpringBoot专题(1) 一个的简单的SpringBoot例子