精华内容
下载资源
问答
  • org.springframework.web.context.request.WebRequestInterceptor; @Component public class MyWebRequestInterceptor implements WebRequestInterceptor { @Override public void preHandle(WebRequest...
    @Configuration
    public class WebMvcBoot extends WebMvcConfigurerAdapter {
        @Resource
        public HandlerInterceptor handlerInterceptor;
        @Resource
        private MyWebRequestInterceptor myWebRequestInterceptor;
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            super.addInterceptors(registry);
             registry.addInterceptor(handlerInterceptor);
            registry.addWebRequestInterceptor(myWebRequestInterceptor);
        }
    }
    
    
    import org.springframework.stereotype.Component;
    import org.springframework.ui.ModelMap;
    import org.springframework.web.context.request.WebRequest;
    import org.springframework.web.context.request.WebRequestInterceptor;
    
    @Component
    public class MyWebRequestInterceptor implements WebRequestInterceptor {
        @Override
        public void preHandle(WebRequest request) throws Exception {
        }
    
        @Override
        public void postHandle(WebRequest request, ModelMap model) throws Exception {
        }
    
        @Override
        public void afterCompletion(WebRequest request, Exception ex) throws Exception {
        }
    }
    

    
    
    package com.gy.config;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    @Component
    public class HandlerInterceptor extends HandlerInterceptorAdapter {
        @Autowired
        private SecurityDeal securityDeal;
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
            //调用接口前调用
            return true;
        }
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
            //报异常时不执行,preHandle返回false不执行,反之执行
           // System.out.println("postHandle");
        }
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
         //   System.out.println("afterCompletion");
        }
        @Override
        public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
           // System.out.println("afterConcurrentHandlingStarted");
        }
    }
    

    展开全文
  • SpringMVC中,Controller带参数ModelMap, 若ModelMap在Controller...进入WebRequestInterceptor的postHandle方法中,获取到的ModelMap为null。 若ModelMapController结束前添加了Attribute,则在postHandle中获取到
    SpringMVC中的WebRequestInterceptor,postHandle方法
    if (Controller带参数ModelMap) {
        if (Controller带参数HttpServletResponse) {
            if (ModelMap在Controller结束前没有添加Attribute) {    //即ModelMap还是为{}的话,
                进入WebRequestInterceptor的postHandle方法中,获取到的ModelMap为null。
            } else if (ModelMapController结束前添加了Attribute){
                在postHandle中获取到的ModelMap不为null。
            }
        }  else {
            在postHandle中获取到的ModelMap不为null。
        }
    }
    但是在postHandle方法中添加ModelMap的Attribute属于常规做法吗?而确实可以这么实现。

    虽然WebRequestInterceptor能够处理ModelMap,但是无法控制跳转页面。
    也就是说,如果Interceptor中发生异常,将无法跳转至错误页面。

    使用HandlerInterceptorAdapter可以解决这个问题。
    但是它的postHandle不支持ModelMap,而是支持ModelAndView。

    展开全文
  • 上一节小博老师给大家介绍了SpringMVC中使用HandlerInterceptor接口实现拦截器的方法,今天小博老师先给大家介绍另外一种拦截器的实现方式WebRequestInterceptor。我们先来看一下WebRequestInterceptor接口的源码...

    上一节小博老师给大家介绍了SpringMVC中使用HandlerInterceptor接口实现拦截器的方法,今天小博老师先给大家介绍另外一种拦截器的实现方式WebRequestInterceptor。我们先来看一下WebRequestInterceptor接口的源码结构:


    WebRequestInterceptor接口同HandlerInterceptor接口一样定义了三个方法,preHandle 、postHandle 以及afterCompletion。两个接口的方法名都相同,调用次序也相同。即preHandle是在请求处理之前调用;postHandle实在请求处理之后,视图渲染之前调用;afterCompletion是在视图渲染之后调用。接下来我们看看他们的不同之处。

    1. 方法参数不同。WebRequest是Spring定义的接口,它是对HttpServletRequest的封装。对WebRequest 进行的操作都将同步到HttpServletRequest 中。WebRequest 的set/getAttribute(name, value, scope)比HttpServletRequest 的set/getAttribute多了一个scope参数。它有三个取值:

    SCOPE_REQUEST:它的值是0,表示request请求作用范围。

    SCOPE_SESSION :它的值是1,表示session请求作用范围。

    SCOPE_GLOBAL_SESSION :它的值是2 ,表示全局会话作用范围,即ServletContext上下文作用范围。

    2. preHandle 方法。WebRequestInterceptor的该方法返回值为void,不是boolean。所以该方法不能用于请求阻断,一般用于资源准备。

    3. postHandle 方法preHandle 中准备的数据都可以通过参数WebRequest访问。ModelMap 是Controller 处理之后返回的Model 对象,可以通过改变它的属性来改变Model 对象模型,达到改变视图渲染效果的目的。

    4. afterCompletion方法Exception 参数表示的是当前请求的异常对象,如果Controller 抛出的异常已经被处理过,则Exception对象为null 。

     

    展开全文
  • WebRequestInterceptor和HandlerInterceptor一样,也有三个方法,preHandle,postHandle,afterCompletion,不同的是preHandle没有返回值,而且WebRequestInterceptor的三个方法的参数都是WebRequest,WebRequest和...

    WebRequestInterceptor和HandlerInterceptor一样,也有三个方法,preHandle,postHandle,afterCompletion,不同的是preHandle没有返回值,而且WebRequestInterceptor的三个方法的参数都是WebRequest,WebRequest和HttpServletRequest用法基本一样。

    public class threeInterpector implements WebRequestInterceptor {
    
    	public void preHandle(WebRequest request) throws Exception {
    		// TODO Auto-generated method stub
             request.setAttribute("username", "zhang",WebRequest.SCOPE_REQUEST);
    	}
    
    	public void postHandle(WebRequest request, ModelMap model) throws Exception {
    		// TODO Auto-generated method stub
            System.out.println(request.getAttribute("username", WebRequest.SCOPE_REQUEST));
    	}
    
    	public void afterCompletion(WebRequest request, Exception ex)
    			throws Exception {
    		// TODO Auto-generated method stub
    
    	}
    
    }

    属性有个scope参数值,分别代表如下含有

    SCOPE_REQUEST :它的值是0 ,代表只有在request 中可以访问。
    SCOPE_SESSION :它的值是1 ,如果环境允许的话它代表的是一个局部的隔离的session,否则就代表普通的session,并且在该session范围内可以访问。
    SCOPE_GLOBAL_SESSION :它的值是2 ,如果环境允许的话,它代表的是一个全局共享的session,否则就代表普通的session,并且在该session 范围内可以访问。

    展开全文
  • HandlerInterceptoer拦截的是请求地址,所以针对请求地址做一些验证、预处理等操作比较合适。 转载于:https://www.cnblogs.com/myibm/p/6000321.html
  • 这三个方法都传递了同一个参数WebRequest, WebRequest 是Spring 定义的一个接口,它里面的方法定义都基本跟HttpServletRequest 一样,在WebRequestInterceptor 中对WebRequest 进行的所有操作都将同步到...
  • 目录 Interceptor 简介 Interceptor 实现方法 HandlerInterceptor 接口 HandlerInterceptor 接口 AsyncHandlerInterceptor 接口 ...WebRequestInterceptor 接口 WebRequestInterceptor 接口 WebRe...
  • springmvc拦截器

    2019-09-03 23:20:50
    拦截器的定义 拦截器通过两种方式来定义: 一种是实现HandlerInterceptor...另一种是实现WebRequestInterceptor接口或WebRequestInterceptor接口实现的类 以实现HandlerInterceptor接口为例 @Override pub...
  • Spring MVC(五)拦截器

    2021-03-31 08:48:23
    一、拦截器概述 用于拦截用户请求并作出相应的处理,可以进行权限验证、记录日志、判断是否登录等。...(2)通过实现WebRequestInterceptor接口,或继承WebRequestInterceptor接口的实现类。 ...
  • SpringMVC -- 拦截器理解

    2019-09-19 16:43:18
    SpringMVC – 拦截器理解 Spring MVC 框架中定义一个拦截器需要对拦截器进行定义和配置 ...另一种是通过实现 WebRequestInterceptor 接口或继承 WebRequestInterceptor 接口的实现类 实现 Han...
  • 要借助Spring实现拦截器功能,可以实现HandlerInterceptor接口或者实现WebRequestInterceptor接口或者继承HandlerInterceptorAdapter适配器【建议使用】 如果实现HandlerInterceptor或者WebRequestInterceptor接口...
  • SpringMVC中的interceptor可以说是过滤器的一部分,可以用来进行权限认证或登录检测等 ...2.通过实现webrequestInterceptor接口或者继承实现了webrequestInterceptor接口的类 一.实现handleInter...
  • 拦截器 一、概述 (一)定义 一种是通过实现 HandlerInterceptor接口或者...另一种是通过实现 WebRequestInterceptor接口或继承WebRequestInterceptor接口的实现类来定义。 (二)拦截器配置 <!-- 配置拦截器--...
  • 定义一个拦截器可以通过两种方式:一种是通过实现 HandlerInterceptor 接口或继承 HandlerInterceptor 接口的...另一种是通过实现 WebRequestInterceptor 接口或继承 WebRequestInterceptor 接口的实现类来定义。 impo
  • SpringBoot自定义拦截器

    2019-01-11 15:09:30
    第一种方式是要定义的Interceptor类要实现了Spring 的HandlerInterceptor 接口,或者是这个类继承实现了...第二种方式是实现Spring的WebRequestInterceptor接口,或者是继承实现了WebRequestInterceptor的类。 一、...
  • 实现WebRequestInterceptor接口,或者继承实现WebRequestInterceptor接口的实现类。 若实现HandlerInterceptor接口,就要实现三个方法: preHandle方法:该方法在执行控制器方法之前执行。 postHandle方法:该方法...
  • 1.拦截器类  Spring MVC中的拦截器,通常两种方式来定义:  1.通过实现HandlerInterceptor接口,或继承...通过实现WebRequestInterceptor接口,或继承WebRequestInterceptor接口的实现类来定义。 ...
  • SpringMvc 拦截器

    2020-09-14 14:26:30
    它主要用于拦截用户的请求并做相应的处理,通常...通过实现 WebRequestInterceptor 接口或继承 WebRequestInterceptor 接口的实现类来定义。 1、定义一个BaseController package com.woo.controller; import org.
  • 2.通过实现WebRequestInterceptor接口,或继承WebRequestInterceptor接口的实现类来定义。 ** 以实现HandlerInterceptor接口方式为例 a.preHandle():在控制器方法前执行,其返回值表示是否中断后续操作。当其返回值...
  • SpringMVC 拦截器

    2018-02-08 21:54:31
    • 创建拦截器并实现HandleInterceptor接口,也可以实现WebRequestInterceptor接口,但是WebRequestInterceptor接口中preHandle方法没有返回值,所以不能通过此方法终止请求 • 在Spring MVC配置文件中以bean的形式...
  • 另一种是通过实现WebRequestInterceptor接口,或继承WebRequestInterceptor接口的实现类来定义。  2、单个拦截器在执行时, 程序首先会执行拦截器类中的preHandle()方法,如果该方法的返回值为true,则程序会继续...
  • SpringBoot拦截器

    2018-03-29 18:43:31
    SpringBoot定义拦截器有两种方法,第一种:实现HandlerInterceptor 接口第二种:实现Spring的WebRequestInterceptor接口,或者是继承实现了WebRequestInterceptor的类这里我们使用的是第二种。步骤一:还是一样的,...
  • 核心类区别

    2014-12-18 10:09:08
    Struts2.2 StrutsPrepareAndExecuteFilter SpringMVC DispatcherServlet Struts2 Interceptor AbstractInterceptor SpringMVC Interceptor HandlerInterceptor/WebRequestInterceptor
  • Spring拦截器

    2020-12-22 02:02:30
    Spring boot Interceptor工作原理使用场景常用拦截器接口HandlerInterceptor例子工作流程AsyncHandlerInterceptor例子工作流程HandlerInterceptorAdapter例子工作流程WebRequestInterceptor例子工作流程配置拦截器 ...
  • WebRequest

    2014-06-19 22:41:13
    WebRequestInterceptor WebRequestInterceptor 中也定义了三个方法,我们也是通过这三个方法来实现拦截的。这三个方法都传递了同一个参数WebRequest ,那么这个WebRequest 是什么呢?这个WebRequest 是Spring 定义...
  • 展开全部import org.springframework.ui.ModelMap;import org.springframework.web.context.request....import org.springframework.web.context.request.WebRequestInterceptor;public class AllInterceptor im...
  • 前言SpringMVC 中的Interceptor 拦截器主要用于拦截用户的请求并进行相应的处理,定义一个Interceptor主要有两种方式:实现HandlerInterceptor 接口...实现Spring的WebRequestInterceptor接口,或者是继承实现了Web...
  • 可以通过实现HandlerInterceptor接口或继承HandlerInterceptor接口的实现类来定义,也可以通过实现WebRequestInterceptor接口或继承WebRequestInceptertor接口的实现类来定义。本文采用实现Han...

空空如也

空空如也

1 2 3 4
收藏数 80
精华内容 32
关键字:

webrequestinterceptor