1、什么是拦截器:
拦截器是Struts2中的核心。其实就是一个类对Action的访问进行拦截。
2、拦截器和过滤器的区别:
过滤器过滤的是从客户端向服务器发送的请求。过滤器是可以过滤DaoHtml,jsp。。
拦截器拦截的是从客户端向Action发送的请求。拦截器只能拦截Action,拦截器拦截器
更细粒度的实施拦截。拦截到Action中具体的方法。
3、Struts2的执行流程:(*****)
请求访问服务器Action,请求会首先到达核心过滤器,过滤器调用Dispatcher中的serviceAction的方法,在这个方法内部,Struts2框架创建一个Action的代理对象,执行代理对象中的execute方法,在execute方法内部调用ActionInvocation中的invoke方法。在invoke方法内部,递归调用拦截器的拦截的方法,如果没有下一个拦截器,执行目标Action,根据Action返回Result进行页面跳转,由Response作出响应。
4、自定义拦截器:
l 第一步:实现Interceptor接口或者继承AbstractInterceptor类
l 第二步:配置拦截器