在了解Struts2框架以前,咱们必须知道如下几点:前端
首先,咱们得了解什么是框架(软件工程)?框架是一种结构化的软件,结构化相对于需求功能来讲是框架须要实现的更重要的目标。框架尽可能将特定领域的平常任务和具体问题的处理流程抽象化,而后提供一个平台,基于这个平台能够更快的构建Web应用程序,目前框架的定义仍是比较普遍的,从框架不一样角度会存在不少不一样的定义,好比从应用方面,框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;从目的方面一个框架是在一个给定的问题领域内,一个应用程序的一部分设计与实现。web
其次,咱们得了解框架有什么做用?由于软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就至关于让别人帮你完成一些基础工做,你只须要集中精力完成系统的业务逻辑设计。并且框架通常是成熟,稳健的,他能够处理系统不少细节问题,好比,事物处理,安全性,数据流控制等问题。还有框架通常都通过不少人使用,因此结构很好,因此扩展性也很好,并且它是不断升级的,你能够直接享受别人升级代码带来的好处。其实说白了,框架有两大点咱们不可忽视的做用:第一,框架自动化了常见的任务。“不要重复的造轮子”,咱们在开发web项目的时候,试想一下若是没有框架,咱们必须本身实现哪些web项目不可缺乏的功能?好比HTTP字符串转换为JAVA数据类型、数据验证、调用业务逻辑以及数据层以及怎么展现,而框架就帮咱们简化了这些任务。第二,框架提供了架构解决方法,不少新人在刚进入web项目开发时不知道从哪里开始进行,这时候引进框架,你会发现按照框架给定的开发思路,会很快的搭建一套本身的web项目。
数据库
最后,咱们为何要学习这些主流框架?其实咱们据说不少大企业都有本身开发的框架,但那也是少数的一些大企业,市场上大多数公司仍是用主流框架,因此掌握几个主流框架,对咱们跳槽来讲是必须的,并不是全部人都能像大牛那样本身搭建框架,那些人只是少数,咱们只要用好这些框架实现本身的任务,熟悉其中的原理,那咱们也是成功的。设计模式
Struts2做为一种遵循MVC设计模式的框架,很好的对前端、业务逻辑以及控制器之间的解耦。如下图片展现了Struts2处理web应用的工做流。安全
根据以上图片咱们会简单介绍MVC的关注点以及Struts2履行的这些职责。
服务器
1.控制器-FilterDispatcher/StrutsPrepareAndExecuteFilter(根据jar版本不一样)架构
Struts2中使用的MVC也被称为前端控制器MVC,这意味着控制器在最前端,是请求处理过程当中第一个被触发的组件。控制器的做用是将请求映射到工做,在Web应用项目中,传入的HTTP请求能够被视为用户向Web应用程序发送的命令,Web应用程序的一个基本任务就是将这些请求路由到Web应用程序中须要执行的一系列动做。Struts2中的控制器由FilterDispatcher或者StrutsPrepareAndExecuteFilter来扮演,这个重要的对象是一个Servlet过滤器,他检查每个传入的请求,决定哪一个Struts2动做处理这个请求。框架会帮你完成全部的控制任务,你只须要告诉框架哪一个请求URL须要映射到哪一个动做便可。框架
2.模型
ide
Struts2中的模型是有动做组件实现。什么是模型,意思就是应用程序内部状态,这个状态由数据模型和业务逻辑共同组成。好比一个登录功能,业务逻辑以及数据库存放都会参与身份验证的过程,咱们会设计业务逻辑从数据库中拿去数据验证,这种状况下就会造成两种状态,一个是验证经过或者是验证不经过,缺乏业务逻辑或者数据咱们都不可能完成实际的登陆效果。学习
Struts2的动做组件就是将业务逻辑封装进一个单独的工做单元,同时在这个单元里对数据进行传输。二者共同做用来实现功能。
3.视图
视图是MVC模式的呈现功能,即将模型处理结果展现给用户看,良好的界面是提升客户体验的重要方面,大多数用户对页面的要求仍是很高的。
总之,Struts2很好的实现的MVC的设计思路,利用好Struts2对于快速搭建项目以及后期维护都会方便不少。