struts2工作原理

struts2工作原理:
编程原理:
用户发送http请求---》Web服务器(tomcat)--》加载web.xml(web部署描述文件)文件-执行struts核心控制器(
StrutsPrepareAndExecuteFilter或者filterDispatcher)--> 加载struts.xml文件,通过请求action名字找到匹配的action -->在action中调用(execute)(业务层|数据层) -->执行result=“"--> 通过result 找到struts.xml与result名字匹配结果--》转发到
页面返回给调用者

程序调用:
struts内部原理图:
(1)用户发送http请求--》启动web服务器 ---》加载web.xml(web部署描述文件)配置文件 ---》执行web.xml中相应过滤器
ActionContextCleanUp:清除页面中的属性
other filter(SiteMesh:装饰过滤器)
SiteMesh作用:页面布局、装饰
FilterDispatcher:struts2核心控制器
注意:(a)使用SiteMesh(装饰过滤器),struts2容器 不在管理页面中属性,需要调用ActionContextCleanUp完成销毁
(b)过滤器执行是有顺序
ActionContextCleanUp-->SiteMesh-->FilterDispatcher
(2)中央控制器FilterDistpacher询问ActionMapper是否需要请求action


(3)如果需要请求action,FilterDispatcher就会调用它的代理(ActionProxy)加载配置文件


(4)ActionProxy会调用Configuration Manager读取strus.xml配置文件
注意:只加载一次
(5)根据请求名字,ActionProxy(action代理)调用 所有拦截器(Inertceptor),ActionProxy(action代理) 创建Action Invocation,去执行所对应action类, 根据Action类中名字找到匹配result页面 (jsp、freeMarker、Velocity)等技术,在此执行拦截器
注意:struts2拦截器和servlet过滤器功能相同, 并比filter强大 拦截器执行顺序:先进后出

(6)相应给用户(HttpServletResponse)

工作原理图:

[img]http://dl2.iteye.com/upload/attachment/0090/2996/3a3e5ac3-d197-366b-a4f4-fc12075b2102.jpg[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值