Struts2系列-Struts2简介和原理

Struts2简介

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

Struts2发展历史

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

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

    Struts的含义是”支柱,枝干”,它的目的是为了减少程序开发的时间,项目的创建者认为JSPservlet的存在虽然可以帮助用户解决大部分问题,但是由于它们的编码对项目的开发带来了许多的不方便,可重用性也差,所以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有不同的理解。接下来真正的运用到实践中,在实践中深刻去体会,原理固然重要,重要的是运用,是能驾驭和使用这个框架。就像学习开车一样,不是一蹴而就的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值