Struts2的过滤器和拦截器

来源:互联网 发布:yum强制重新安装 编辑:程序博客网 时间:2024/06/16 05:06

过滤器FilterDispacher

在req传入前提前过滤掉一些信息,或者设置一些参数,然后再传入Action进行业务逻辑,如过滤非法的URL(用户登录控制),统一设置字符集,去掉一些非法字符

拦截器Interceptor

Action方法前、后或者抛出异常时,调用一个方法完成业务逻辑的操作,如国际化、输出验证、文件上传

两者区别

  • 过滤器基于函数回调,拦截器基于反射机制
  • 过滤器倚赖Servlet容器,拦截器不依赖
  • 过滤器对所有的请求起作用,拦截器只是对Action起作用,但是拦截器可以访问Action的上下文、值栈里面的对象,过滤器不能访问。
  • 在Action生命周期,过滤器只能在容器中初始化一次,拦截器可以多次调用。

执行过程

过滤-拦截-Action处理-拦截-过滤
首先把客户端提交的内容进行过滤,未登录用户不能访问内部页面的处理,过滤通过后,拦截器将检查用户提交数据的验证,做一些前期的数据处理,接着把处理后的数据发给对应的Action。Action处理完成返回后,拦截器还可以做其他过程,再向上返回到过滤器的后续操作。

0 0
原创粉丝点击