拦截器在Struts2中的作用以及Struts2工作机制

任何MVC框架都会完成一些通用的控制逻辑,如解析请求参数,类型转换,将请求参数封装成DTO,执行输入校验,解析文件上传表单中的文件域,防止表单的多次提交...早期的Struts1框架把这些动作都写死在系统的核心控制器中,但这样会导致灵活性和扩展性很差。Struts2改善了这两个缺点,它把核心控制器按功能分开定义,每个拦截器完成一个功能,这些拦截器可以自由组合甚至可以自定义拦截器,使用哪些就在struts.xml中配置即可,非常方便(可插拔式设计)。

使用Struts2框架时,用户请求会被StrutsPrepareAndExecuteFilter拦截,strutsPrepareAndExecuteFilter询问ActionMapper来决定这个请求是否需要调用某个Action,如果ActionMapper决定需要调用某个Action,StrutsPrepareAndExecuteFilter把请求的处理交给ActionProxy,ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类,ActionProxy创建一个ActionInvocation的实例,ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器的调用;一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到相应的返回结果。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值