码迷,mamicode.com
首页 > 其他好文 > 详细

【DIY系列】动手实现Struts2框架(一)原理分析

时间:2015-07-31 21:58:34      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:

一.struts概念

        struts2是一款体现关注点分离思想的架构。

        struts2将我们web开发中的各个需要处理的细节都封装到了拦截器中(Interceptor),每个拦截器负责自己独立的功能。

        例如:参数拦截器(params),令牌拦截器(Interceptor-stack)

        我们也可以指定自己的拦截器来拓展struts2的功能(自定义拦截器)


二.struts2的特点

1.关注点分离/解耦

        把变化点错落有致的封装在软件系统的不同部分。

        系统的一个部分发生了变化,不会影响到其他部分

        即使需要改变,也能够清晰的识别出哪些部分需要改变。

        如果需要拓展架构,将影响最小化,已经可以工作的美格尔部分将继续工作。

2.mvc

struts2中也体现了MVC的设计思想

        控制器C(StrutsPrepareAndExecuteFilter)就是我们在web.xml中声明的struts2核心类

        模型M(Action)

        视图V(JSP)

技术分享

三.Struts2的处理流程

     图中用数字表示了,请求的流转过程

技术分享

当用户发出请求后

    1:首先经过struts2框架的核心控制器(strutPrepareAndExecuteFiler)

    2:核心控制器依次查找ActionMapper来决定调用这个请求是否调用action。如果actionMapper决定调用action,那么核心控制器就把请求的处理器控制权委托给actionProxy

    3:actionProxy通过configuration manager查询struts框架的很新配置文件(struts.xml)找到,所要调用的action类

    4:然后actionproxy创建一个actionInvocation实例,该实例负责命令模式的实现,包括激活action 的任意拦截器。

    5:在action执行完成后之后,actionInvocation实例负责根据action的返回结果码在struts.xml配置文件中找到所需要的result。然后该结果通常是jsp或者freemarker模板。也可能是action。

    6:action配置的拦截器将再次执行(执行顺序和调用的时候相反)

    7:服务器响应将通过web.xml文件中配置的struts2框架核心控制器返回。


(下一篇文章中将讲述:手动实现struts2框架)

需要读者对以下知识点了解:

        1.xml解析器,XPath表达式(dom4j)

        2.Servlet技术

        3.java内省(BeanUtils)

        4.ThreadLocal线程本地化类

        5.递归调用

版权声明:本文为博主原创文章,未经博主允许不得转载。

【DIY系列】动手实现Struts2框架(一)原理分析

标签:

原文地址:http://blog.csdn.net/zhaolijing2012/article/details/47174313

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!