SpringMVC拦截器运行原理及配置详解

过滤器与拦截器的区别:

过滤器在 url-pattern 中配置了/*之后,可以对所有要访问的资源拦截。

拦截器它是只会拦截访问的controller中的方法,如果访问的是 jsp,html,css,image 或者 js 是不会进行拦 截的

拦截器的处理方案:

1:编写拦截器类

自定义拦截器

 public class MyInterceptor implements HandlerInterceptor {

/**
 * 预处理方法:controller方法执行前
 *return true 放行,执行下一个拦截器,如果没有,就执行controller中的方法
 *return: false 不放行
 * @param request
 * @param response
 * @param handler
 * @return
 * @throws Exception
 */
@Override
public boolean preHandle(HttpServletRequest request,
             HttpServletResponse response,
             Object handler) throws Exception {
  System.out.println("执行前......testInterceptor....");
  return true;
}

/**
 * 后处理方法,controller方法执行后,success.jsp执行之前
 *
 *
 * @param request
 * @param response
 * @param handler
 * @param modelAndView
 * @throws Exception
 */
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
  System.out.println("执行后......testInterceptor....");
}

/**
 *
 *success.jsp页面执行后,该方法会执行
 *
 *
 * @param request
 * @param response
 * @param handler
 * @param ex
 * @throws Exception
 */
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
  System.out.println("success.jsp执行后...");
   }
 }

2:在springmvc.xml中配置自定义拦截器

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Spring Web零xml配置原理以及父子容器关系详解

    前言 在使用Spring和SpringMVC的老版本进行开发时,我们需要配置很多的xml文件,非常的繁琐,总是让用户自行选择配置也是非常不好的.基于约定大于配置的规定,Spring提供了很多注解帮助我们简化了大量的xml配置:但是在使用SpringMVC时,我们还会使用到WEB-INF/web.xml,但实际上我们是完全可以使用Java类来取代xml配置的,这也是后来SpringBoott的实现原理.本篇就来看看Spring是如何实现完全的零XML配置. 正文 先来看一下原始的web.xml配置

  • 浅谈Spring与SpringMVC父子容器的关系与初始化

    Spring和SpringMVC的容器具有父子关系,Spring容器为父容器,SpringMVC为子容器,子容器可以引用父容器中的Bean,而父容器不可以引用子容器中的Bean. 了解了Spring与SpringMVC父子容器的关系,接下来让我们看看Spring与SpringMVC容器的初始化过程. 以下讲解使用的web.xml文件如下: <context-param> <param-name>contextConfigLocation</param-name>//指定

  • 启动Spring项目详细过程(小结)

    1.Spring 项目放到web项目容器中(Tomcat.Jetty.JBoss) 本文以通用的Tomcat为例 2.项目容器启动时需要加载读取web.xml配置文件 如下图: 3.容器首先会去读取web.xml配置文件中的两个节点:<listener> </listener>和<context-param> </context-param> 说明: tomcat在启动web容器的时候会启动一个叫ServletContextListener的监听器,每当在w

  • 这一次搞懂SpringMVC原理说明

    前言 前面几篇文章,学习了Spring IOC.Bean实例化过程.AOP.事务的源码和设计思想,了解了Spring的整体运行流程,但如果是web开发,那么必不可少的还有Spring MVC,本篇主要分析在请求调用过程中SpringMVC的实现原理,通过本篇要搞懂它是怎么解决请求.参数.返回值映射等问题的. 正文 请求入口 我们都知道前端调用后端接口时,都会通过Servlet进行转发,而Servlet的声明周期包含下面四个阶段: 实例化(new) 初始化(init) 执行(service调用do

  • SpringMVC拦截器运行原理及配置详解

    过滤器与拦截器的区别: 过滤器在 url-pattern 中配置了/*之后,可以对所有要访问的资源拦截. 拦截器它是只会拦截访问的controller中的方法,如果访问的是 jsp,html,css,image 或者 js 是不会进行拦 截的 拦截器的处理方案: 1:编写拦截器类 自定义拦截器 public class MyInterceptor implements HandlerInterceptor { /** * 预处理方法:controller方法执行前 *return true 放行

  • Java web拦截器inteceptor原理及应用详解

    这篇文章主要介绍了java web拦截器inteceptor原理及应用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.简介 java里的拦截器提供的是非系统级别的拦截,也就是说,就覆盖面来说,拦截器不如过滤器强大,但是更有针对性. Java中的拦截器是基于Java反射机制实现的,更准确的划分,应该是基于JDK实现的动态代理.它依赖于具体的接口,在运行期间动态生成字节码. 拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发

  • R语言运行环境安装配置详解

    一.下载 这个是R 语言下载的镜像站点的列表 https://cran.r-project.org/mirrors.html 直接选择清华的站点来进行下载即可 https://mirrors.tuna.tsinghua.edu.cn/CRAN/ 选择版本进行下载 点击运行 进入安装界面 一路默认,安装完毕! 二.Pycharm内 好像根据环境变量,自动就配置好了,很方便 R语言下载及安装介绍到这里,你就可以用R语言写下你的第一行R语句了,打印个"Hello World!"试一下 >

  • Redis Cluster原理及配置详解

    目录 Redis Cluster 原理说的头头是道,这些配置不懂就是纸上谈兵 cluster-enabled cluster-config-file cluster-node-timeout cluster-port cluster-replica-validity-factor cluster-migration-barrier cluster-require-full-coverage cluster-replica-no-failover cluster-allow-reads-when-

  • 深入分析C#键盘勾子(Hook)拦截器,屏蔽键盘活动的详解

    钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的.当消息到达后,在目标窗口处理函数之前处理它.钩子机制允许应用程序截获处理window消息或特定事件. 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统.每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权.这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的

  • SpringBoot拦截器Filter的使用方法详解

    前言: 最新Servlet 3.0拦截器的使用 1.pom.xml添加需要使用的依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/x

  • spring boot拦截器的使用场景示例详解

    前言 在用户登陆之后,我们一般会把用户登陆的状态和相关信息进行存储,把对应的token返回到客户端进行存储,下次请求过来时,系统可以通过token拿到当前这个用户的相关信息,这是授权通常的作法,而有时一些业务里,你存储的用户信息不是全局的,可能只是某几个接口会用户某些信息,而你把它存储起来就不是很合理:并且一些隐私信息持久化到redis也不合理,这时就需要统一对这种接口的请求做一起处理了. 拦截器HandlerInterceptor 我们可以去实现这个HandlerInterceptor接口,它

  • MySQL主从原理及配置详解

    MySQL主从配置及原理,供大家参考,具体内容如下 一.环境选择: 1.Centos 6.5 2.MySQL 5.7 二.什么是MySQL主从复制 MySQL主从复制是其最重要的功能之一.主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中.对于多级复制,数据库服务器即可充当主机,也可充当从机.MySQL主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新. 三.MySQL主从复制的类型

  • 解决SpringMVC拦截器path路径的坑

    目录 SpringMVC拦截器path路径的坑 SpringMVC拦截器设置多个path 设置多个path SpringMVC拦截器path路径的坑 SpringMVC提供了很方便的拦截器供我们开发使用.在配置文件中通过<mvc:mapping path="" />进行配置拦截的路径,但是这个path在配置的时候有一个小坑 我们都知道在SpringMVC拦截器中的/**是配置全部路径.现在我有一个需求,想要拦截以/user/开头的请求.我的path写为/user/**,这样

  • 详解SpringMVC拦截器配置及使用方法

    本文介绍了SpringMVC拦截器配置及使用方法,分享给大家,具体如下: 常见应用场景 1.日志记录:记录请求信息的日志,以便进行信息监控.信息统计.计算PV(Page View)等. 2.权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录页面: 3.性能监控:有时候系统在某段时间莫名其妙的慢,可以通过拦截器在进入处理器之前记录开始时间,在处理完后记录结束时间,从而得到该请求的处理时间(如果有反向代理,如apache可以自动记录): 4.通用行为:读取cookie得到用户信

随机推荐