您的位置:首页 > 编程语言 > Java开发

Struts2系列-Struts2简介和原理

2015-08-31 21:32 585 查看

Struts2简介

Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于JavaEEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。

Struts2发展历史

Struts是作为ApacheJakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServerPages、servlet、标签库以及面向对象的技术水准。

Struts这个名字的来源于在建筑和旧式飞机中使用的支持金属架。之所以这个框架叫做“struts”,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷的基础支撑。这也是解释struts在开发web应用程序中所扮演的角色的精彩描述。

Struts的含义是”支柱,枝干”,它的目的是为了减少程序开发的时间,项目的创建者认为JSP,servlet的存在虽然可以帮助用户解决大部分问题,但是由于它们的编码对项目的开发带来了许多的不方便,可重用性也差,所以struts应运而生,帮助用户在最短的时间内解决这些问题。



Struts2 执行原理



如上图:

1.首先 客户端通过HttpServletRequest,向servlet容器也就是我们的tomcat服务器,首先经过一系列的过滤器,最终会被struts核心控制器StrutsPrepareAndersonExecuteFilter

2.核心控制器会访问ActionMapper,通过其来判断是否要访问某个action,因为这个时候用户可能请求的是jsp页面或者其他的资源,并不是访问某个action。

3.如果判断是需要调用某个Action,此时核心过滤器会把控制权交给 ActionProxy。

4.ActionProxy会通过 ConfigurationManager 来加载struts2核心配置文件struts.xml文件

5.如果在该文件中可以找到请求的Action信息,ActionProxy会创建一个ActionInvocation实例;

该实例包含所要调用的Action实例,而且包含很重要的过滤器。

6.在调用Action之前,ActionInvocation先要去调用这些拦截器

7.拦截器调用完后,调用Action并返回一个字符串,之后去匹配struts.xml配置的result,一般会返回一个jsp页面或者去调用另外某一个Action;

8.执行完该操作后,还没有去真正去响应客服端请求,反序去执行过滤器intercepter,当执行完所有的过滤器,最终再去响应客户端请求。



以上初步struts框架进行了介绍,和对原理进行了简单的分析不同的人对struts有不同的理解。接下来真正的运用到实践中,在实践中深刻去体会,原理固然重要,重要的是运用,是能驾驭和使用这个框架。就像学习开车一样,不是一蹴而就的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: