• 过滤器和拦截器的区别


    Spring 的拦截器与Servlet的过滤器有相似之处,二者都是AOP编程思想的体现,都可以实现权限的检查,日志记录等

      ① 使用范围不同:  Filter是Servlet规范规定,只能用在web程序中,而拦截器,除了web程序,也可以用于Application,Swing程序中

      ②  规范不同  Filter是Servlet规范中定义的  是Servlet容器支持的,而拦截器是在spring容器内,是Spring框架支持的

      ③  使用资源不同  同其他代码块一样,拦截器也是sprring的组件,归spring管理,配置spring文件中,因此能使用Spring中任何资源,对象,例如对象,数据源,事务管理,通过IOC注入到拦截器即可:Filter则不能

      ④  深度不同,Filter只在Servlet前后起作用,而拦截器能够深入到方法前后,异常抛出前后,spring架构程序,优先使用拦截器

    详细的区别:

      ①:  拦截器是基于java的反射机制,而过滤器是基于函数回调

      ②: 拦截器不依赖servlet容器,过滤器依赖servlet容器

      ③ 拦截器只能对action请求起作用,过滤器对所有请求起作用

      ④  拦截器可以访问action上下文,值栈里的对象,而过滤器不能

      ⑤  在action的生命周期中,拦截器可以多次调用,而过滤器只能在容器的初始化时被调用一次

      ⑥拦截器可以获取IOC容器各个bean,而过滤器不能,

      过滤器

    @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            System.out.println("before...");
            chain.doFilter(request, response);
            System.out.println("after...");
        }

    拦截器

     @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
            System.out.println("preHandle");
            return true;
        }
    
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
            System.out.println("postHandle");
        }
    
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
            System.out.println("afterCompletion");
        }

     

    SpringMVC的机制是由同一个Servlet来分发请求给不同Controller,其实这一步实在Servlet的service()方法中执行

    原文链接  https://www.cnblogs.com/panxuejun/p/7715917.html

    java中getAttribute和getParameter的区别

      getAttribute表示从request范围获取属性值,必须先set设置属性,才能获取到值

    getParameter表示接受参数,参数为页面提交的数据,包括表单中数据,或者url后参数

  • 相关阅读:
    SSAS 内部错误:操作未能成功
    无法从项目中获取SSIS包的列表
    新特技软件(Analyzer)添加新用户
    cmd命令搜集
    面试中--js注意事项(小知识点)
    面试的一般需求
    函数----let和const
    函数----箭头函数
    vuex的相关知识
    js中,数组去重的方法的总结(温故而知新)
  • 原文地址:https://www.cnblogs.com/developerxiaofeng/p/9078332.html
Copyright © 2020-2023  润新知