深入理解SSH之struts2工作原理

[img]http://dl2.iteye.com/upload/attachment/0098/0011/cde30de8-73c3-3f74-92be-3296cf454530.png[/img]

上图是来源于struts2的官方站点,是struts2的整体结构。
一个请求在struts2框架中的处理大致分为以下几个步骤:

1、客户端初始化一个请求指向servlet容器
2、这个请求经过一系列的过滤器(Filter)
3、接着FilterDispatcher被调用,FilterDispatcher访问ActionManpper来决定这个请求是否需要调用某个Action
4、如果ActionMapper决定调用某个action,FilterDispatcher把请求的处理交给ActionProxy
5、ActionProxy通过Configuration Manager访问框架的配置文件struts.xml,找到需要调用的action类
6、ActionProxy会创建一个Action Invocation实例
7、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,会涉及到拦截器(Interceptor)的调用
8、Action执行完毕后,Action Invocation会根据struts.xml中配置找到对应的返回结果.

在上述过程中所有的对象(Action,Results,Interceptors等)都是通过ObjectFactory来创建的


以下是简要的工作流程:

1、客户端浏览器发出HTTP请求。
2、根据web.xml配置,该请求被FilterDispatcher接收。
3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。
4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。
5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。
6、返回HTTP响应到客户端浏览器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值