Struts工作原理剖析

[img]http://dl.iteye.com/upload/attachment/265877/f0a2b5f6-f7eb-32fa-a750-ef3d76a335ee.bmp[/img]

通过上面一张原理图可以知道:struts核心类是RequestProcessor,ActionServlet,我们可以将这两个类类比成一个销赃者,一个枪劫者。
ActionServlet:除了几个基本方法,没有其他业务逻辑方法。它的作用是:
1、加载struts-config.xml配置文件
2、加载资源文件
3、利用Digester解析struts-config.xml配置文件,将Action实例缓存机来(使用一个HashMap存机来)
4、拦截请求,委拖RequestProcessor处理请求

RequestProcessor:处理ActionServlet传递过来的请求。它的作用是:
1、创建ActionMapping,将Action/ActionForm/Forward缓存起来
2、创建ActionForm,检证ActionForm数据格式
3、封装数据到ActionForm中
4、创建Action
5、创建RequestDispatcher
6、响应请求


[img]http://dl.iteye.com/upload/attachment/265872/af3e5b73-151b-3f9f-a4b4-76c78d8408c1.bmp[/img]

[img]http://dl.iteye.com/upload/attachment/265879/c4c7087a-1a71-3fc9-b56a-537907a0a775.bmp[/img]

struts优点:
1、采用MVC模式,实现数据显示与业务逻加分开,便于开工开发软件
2、提供一些便利的组件:国际化,表单校验等(表单校验是优点也是缺点)
3、提供一套简单易用的标签库(在目前的富客户端可能用不上了,例如:EXT本身就有校验功能)
4、提供上传下载组件

缺点:
1、Action采用单例模式生成,在并发情况下具有安全隐患(机率小,但不排除)
2、Action应该面向接口编程
3、与底层API耦合度高,不便于测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值