复习Struts2 (Day0921)生命周期及拦截器

2、Struts2生命周期:
   2.1) 生命周期
       1) 客户端发出请求给Web服务器
       2) 请求经过一系列的过滤器(包括Struts2的过滤器和其它过滤器)
       3) 如果是到达了Struts2的过滤器,底层有核心控制器会被调用,访问ActionMapper来判断当前请求是否需要调用Action。
       4) 如果ActionMapper判断是需要调用某个Action,核心控制器把控制权委派给ActionProxy(注意:jsp不需要调用Action,放行)
       5) ActionProxy通过Configuration Manager访问框架的配置文件(struts.xml),找到需要调用的Action类
       6) ActionProxy创建一个ActionInvocation的实例
       7) ActionInvocation负责调用Action的执行方法,在调用方法前会执行一系列的拦截器。
       8) Action执行完毕,ActionInvocation负责根据结果视图图在struts.xml的配置中找到对应的结果视图
       9) 拦截器被再次执行
       10) 过滤器被再次执行
       


    2.2) Struts2核心接口和类
       1) ActionMapper类:根据请求的url查找是否存在对应的Action调用。
       2) ActionMapping类:保存调用Action的映射信息。例如:namespace,name(actionName),class(actionClass)等    
       3) ActionProxy接口:Action代理类去对每一个Action的请求的操作。 
       4) ActionInvocation接口:表示Action的执行状态,保存拦截器、Action实例。
       5) Interceptor接口:在请求处理之前或之后执行Struts2组件。(注意:Struts2的很多功能都是通过拦截器完成的,
          所以拦截器是Struts2的真正的核心)。
          
    2.3) Struts2自带拦截器:
       1) params:负责将请求参数设置到Action属性中。
       2) fileUpload:对文件实现上传支持
       3) servletConfig:将Servlet API的各种对象注入到Action中
       4) modelDriven:注入某个类型的对象到Action属性中      
       5) validation:调用验证框架进行数据验证。
       
3、拦截器(Interceptor)
   1) 为什么要使用拦截器?
      Struts2将核心功能放在多个拦截器中实现,每个拦截器完成某项特定功能。拦截器可以自由选择和组合,增加灵活性,
      有利于系统的解耦。 

      
   2)什么是拦截器?
      拦截器的原理和过滤器类似。
      Struts2将核心功能放在多个拦截器中实现,每个拦截器完成某项特定功能。  
      拦截器在Action方法之前或之后执行。
      为Action增加附加功能,不需要修改Action代码,就使用拦截器来提供。
      
   3) 自定义拦截器
      3.1) 实现Interceptor接口
      3.2) 继承AbstractInterceptor类:AbstractInterceptor类实现了Interceptor接口,AbstractInterceptor类类似于ActionSupport类与Action的关系。  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值