过滤器和拦截器的区别
来源:互联网 发布:java 字符串 == 编辑:程序博客网 时间:2024/06/02 00:04
最近复习下,准备去上海!
关于interceptor与Filter区别:
1、拦截器是基于java反射机制的,而过滤器是基于函数回调的。2、过滤器依赖于servlet容器,而拦截器不依赖于servlet容器。
3、拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。
4、拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。
5、在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。
拦截器实例:
public class UserCheckInterceptor extends AbstractInterceptor{/** * 拦截器业务处理方法 */public String intercept(ActionInvocation invocation) throws Exception {// 拿到当前执行的方法名:判断,只有当前方法名不是login,就进行验证// 获取ActionContext对象ActionContext ac = invocation.getInvocationContext();// 获取action的代理对象 ActionProxy proxy = invocation.getProxy(); // 获取当前执行的方法名 String methodName = proxy.getMethod(); // 判断 if (!"login".equals(methodName)) { // 先获取当前登陆的用户 Object obj = ac.getSession().get("userInfo"); if (obj == null) { // 没有登陆 return "input"; } else { // 当前用户有登陆 return invocation.invoke(); } } else { // 说明当前用户正在登陆 return invocation.invoke(); }}}
过滤器实例:
public class HelloFilter implements Filter{// 创建实例public HelloFilter(){System.out.println("1. 创建过滤器实例");}@Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println("2. 执行过滤器初始化方法");// 获取过滤器在web.xml中配置的初始化参数String encoding = filterConfig.getInitParameter("encoding");System.out.println(encoding);// 获取过滤器在web.xml中配置的初始化参数 的名称Enumeration<String> enums = filterConfig.getInitParameterNames();while (enums.hasMoreElements()){// 获取所有参数名称:encoding、pathString name = enums.nextElement();// 获取名称对应的值String value = filterConfig.getInitParameter(name);System.out.println(name + "\t" + value);}}// 过滤器业务处理方法: 在请求到达servlet之前先进入此方法处理公用的业务逻辑操作@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {System.out.println("3. 执行过滤器业务处理方法");// 放行 (去到Servlet)// 如果有下一个过滤器,进入下一个过滤器,否则就执行访问servletchain.doFilter(request, response);System.out.println("5. Servlet处理完成,又回到过滤器");}@Overridepublic void destroy() {System.out.println("6. 销毁过滤器实例");}}
0 0
- 过滤器和拦截器的区别
- 过滤器和拦截器的区别
- 过滤器和拦截器的区别
- java_过滤器和拦截器的区别
- 拦截器和过滤器的区别
- 过滤器和拦截器的区别
- 拦截器和过滤器的区别
- 过滤器和拦截器的区别
- 拦截器和过滤器的区别
- 拦截器和过滤器的区别
- 拦截器和过滤器的区别?
- 过滤器和拦截器的区别
- 拦截器和过滤器的区别
- 拦截器和过滤器的区别
- 过滤器、拦截器和监听器的区别
- 过滤器和拦截器的区别
- 过滤器和拦截器的区别
- 过滤器和拦截器的区别
- spring JDBC
- ZOJ3322-Who is Older?
- vim 常用命令
- 欢迎使用CSDN-markdown编辑器
- 不要怂,就是GAN (生成式对抗网络) (四):训练和测试 GAN
- 过滤器和拦截器的区别
- 10006---临时急需马上说-01
- MySQL中锁详解(行锁、表锁、页锁、悲观锁、乐观锁等)
- sphinx学习技巧:亿万级项目都在用的sphinx
- Visual Studio常用快捷键
- 组合数 dfs
- 笔试题9
- Android之旅第四站——Spinner的使用…
- 模板引擎原理