Spring interceptor拦截器配置及用法解析

fifter、servlet、interceptor

fifter用来处理请求头、请求参数、编码的一些设置,然后转交给servlet,处理业务,返回

servlet现在常用的spring,servlet拦截/到DispatcherServlet,交由spring管理

interceptor,servlet请求之后可以实现HandlerInterceptor做到preHandle、postHandle、afterCompletion在controller之前、之后、渲染之后

登陆

业务中常用的登陆、注册,大部分用cookie、session来做,这时候就涉及到拦截判断用户是否登陆、是否有权限?至此引出interceptor:

  package com.bs.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import com.bs.controller.BaseController;
import com.bs.entity.Member;

public class LoginInterceptor implements HandlerInterceptor {

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {

		Member member = BaseController.getMemberByCookie(request);
		System.out.println(member);
		if(member == null){
			response.sendRedirect("/officialweb/login.html");
		}
		return false;
	}

	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		// TODO Auto-generated method stub

	}

	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		// TODO Auto-generated method stub
	}
}

java代码如上,然后在servlet.xml中配置如下:

 <!-- 拦截器 -->
 <!--     多个拦截器,顺序执行 -->
  <mvc:interceptors>
     <mvc:interceptor>
      <mvc:mapping path="/**"/>
      <mvc:exclude-mapping path="/**/cloud/**" />
      <mvc:exclude-mapping path="/**/login/**" />
      <bean class="com.bs.interceptor.LoginInterceptor"></bean>
    </mvc:interceptor>
  </mvc:interceptors>

mvc:mapping拦截的path地址,mvc:exclude-mapping不拦截的path地址,比如一些登陆、注册、验证码、和可以不登录操作的接口。

至此结束。

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

(0)

相关推荐

  • 详解Java的Hibernate框架中的Interceptor和Collection

    Interceptor 讲到Interceptor,相信熟悉struts2的童鞋肯定不会陌生了,struts2可以自定义拦截器进行自己想要的一系列相关的工作.而这里我们说的Interceptor也是差不多相似的功能.  废话不说,直接来代码:  下面这个是MyInterceptor类,它实现了Interceptor接口: public String onPrepareStatement(String arg0) { return arg0; } public boolean onSave(Obj

  • Spring MVC 拦截器 interceptor 用法详解

    Spring MVC-拦截器 今天就是把有关拦截器的知识做一个总结. 1.拦截器概述 1.1 什么是拦截器? Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理.例如通过拦截器可以进行权限验证.记录请求信息的日志.判断用户是否登录等. 要使用Spring MVC中的拦截器,就需要对拦截器类进行定义和配置.通常拦截器类可以通过两种方式来定义. 1.通过实现HandlerInterceptor接口,或继承Han

  • Spring security用户URL权限FilterSecurityInterceptor使用解析

    这篇文章主要介绍了Spring security用户URL权限FilterSecurityInterceptor使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 用户通过浏览器发送URL地址,由FilterSecurityInterceptor判断是否具有相应的访问权限. 对于用户请求的方法权限,例如注解@PreAuthorize("hasRole('ADMIN')"),由MethodSecurityInterceptor判断

  • 详解Retrofit Interceptor(拦截器) 拦截请求并做相关处理

    本文介绍Retrofit拦截器(Interceptor)的使用方法及相关注意事项.如果本文对您有所帮助,烦请点亮小红心- 首先看一下Interceptor源码: /** * Observes, modifies, and potentially short-circuits requests going out and the corresponding * responses coming back in. Typically interceptors add, remove, or tran

  • Springboot+redis+Interceptor+自定义annotation实现接口自动幂等

    前言: 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同.按照这个含义,最终的含义就是对数据库的影响只能是一次性的,不能重复处理.如何保证其幂等性,通常有以下手段: 1:数据库建立唯一性索引,可以保证最终插入数据库的只有一条数据 2:token机制,每次接口请求前先获取一个token,然后再下次请求的时候在请求的header体中加上这个token,后台进行验证,如果验证通过删除token,下次请求再次判断toke

  • 分享Angular http interceptors 拦截器使用(推荐)

    AngularJS 简介 AngularJS 是一个 JavaScript 框架.它可通过 <script> 标签添加到 HTML 页面. AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML. 拦截器 在开始创建拦截器之前,一定要了解 $q和延期承诺api 出于全局错误处理,身份验证或请求的任何同步或异步预处理或响应的后处理目的,希望能够在将请求移交给服务器之前拦截请求,并在将请求移交给服务器之前将响应拦截发起这些请求的应用程序代码-拦截器利用promise

  • spring boot加入拦截器Interceptor过程解析

    这篇文章主要介绍了spring boot加入拦截器Interceptor过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.spring boot拦截器默认有 HandlerInterceptorAdapter AbstractHandlerMapping UserRoleAuthorizationInterceptor LocaleChangeInterceptor ThemeChangeInterceptor 2.配置spring

  • Java servlet、filter、listener、interceptor之间的区别和联系

    servlet.filter.listener.interceptor之间的区别和联系 一.概念 1.servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层. 2.filter:filter是一个可以复用的代码片段,可以用来转换HTTP请求.响应和头信息.Filter不像Servlet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改从某一的响应. 3.listener:

  • SpringBoot中使用Filter和Interceptor的示例代码

    一.Filter(过滤器) Filter接口定义在javax.servlet包中,是Servlet规范定义的,作用于Request/Response前后,被Servlet容器调用,当Filter被Sring管理后可以使用Spring容器资源. 实现一个Filter 自定义的过滤器需要实现javax.servlet.Filter,Filter接口中有三个方法: init(FilterConfig filterConfig):过滤器初始化的被调用. doFilter(ServletRequest s

  • Spring interceptor拦截器配置及用法解析

    fifter.servlet.interceptor fifter用来处理请求头.请求参数.编码的一些设置,然后转交给servlet,处理业务,返回 servlet现在常用的spring,servlet拦截/到DispatcherServlet,交由spring管理 interceptor,servlet请求之后可以实现HandlerInterceptor做到preHandle.postHandle.afterCompletion在controller之前.之后.渲染之后 登陆 业务中常用的登陆

  • Spring Boot拦截器和过滤器实例解析

    这篇文章主要介绍了Spring Boot拦截器和过滤器实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.拦截器与过滤器 在讲Spring boot之前,我们先了解一下过滤器和拦截器.这两者在功能方面很类似,但是在具体技术实现方面,差距还是比较大的.在分析两者的区别之前,我们先理解一下AOP的概念,AOP不是一种具体的技术,而是一种编程思想.在面向对象编程的过程中,我们很容易通过继承.多态来解决纵向扩展. 但是对于横向的功能,比如,在所

  • Spring拦截器HandlerInterceptor接口代码解析

    Spring的HandlerMapping支持拦截器,拦截器必须实现HandlerInterceptor接口,此接口里面有下面3中方法: 1.preHandle()处理器执行前被调用,方法返回true标识继续调用其他拦截器或者处理器,返回false表示中断流程,后续的拦截器和处理器不再执行. 2.postHandle()处理器执行后,视图执行前调用,此时而已通过ModelAndView对象对数据模型数据进行处理或对视图进行处理. 3.afterCompletion()整个过程结束后调用,比如性能

  • spring boot中interceptor拦截器未生效的解决

    目录 interceptor拦截器未生效 开始用的spring boot版本为1.5.6 解决方案 HandlerInterceptor实现登录失效拦截等 首先写一个实现HandlerInterceptor的类 然后把这个拦截器注册到spring中 interceptor拦截器未生效 搭建项目时发现拦截器未生效 开始用的spring boot版本为1.5.6 代码如下: @Configuration public class WebConfig extends WebMvcConfigurerA

  • Spring MVC 拦截器实现登录

    上篇博文我在博客中讲到如何使用spring MVC框架来实现文件的上传和下载,今天小钱给大家再来分享和介绍Spring MVC框架中相当重要的一块功能--拦截器. 关于拦截器的概念我在这里就不多说了,大家可以上网百度或者看别人写的具体博客,我今天要说的是拦截器在实际开发中它有什么作用,怎样用Spring MVC拦截器来实现可拔插方式管理各种功能.Interceptor拦截器,它的主要作用就是拦截用户的请求并进行相应的处理.什么意思呢?比如说:通过拦截器来进行用户的权限验证,或者是用来判断用户是否

  • 使用Spring方法拦截器MethodInterceptor

    目录 Spring方法拦截器MethodInterceptor 前言 Spring拦截器实现+后台原理(MethodInterceptor) MethodInterceptor MethodInterceptor接口 AspectJ的注解 简单介绍下关键词 切面设置 execution表达式 下面分析下Spring @Aspect Spring方法拦截器MethodInterceptor 前言 实现MethodInterceptor 接口,在调用目标对象的方法时,就可以实现在调用方法之前.调用方

  • 详解Spring AOP 拦截器的基本实现

    一个程序猿在梦中解决的 Bug 没有人是不做梦的,在所有梦的排行中,白日梦最令人伤感.不知道身为程序猿的大家,有没有睡了一觉,然后在梦中把睡之前代码中怎么也搞不定的 Bug 给解决的经历?反正我是有过. 什么是 AOP ? AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP 是 OOP 的延续,是软件开发中的一个热点,也是 Spring 框架中的一个重要内容,是函数式编程的一种衍生

  • Spring MVC拦截器的基本使用方法

    拦截器简介 Spring MVC 中的拦截器(Interceptor)类似于 Servler 中的过滤器(Filter).用于对处理器进行预处理和后处理.常用于日志记录.权限管理.性能监控.通用行为等. 拦截器的实现 Spring MVC 中的拦截器需要我们手动实现和配置.拦截器可以通过以下两种方式定义 实现 HandleInterceptor 接口,或者继承该接口的实现类如 HandleInterceptorAdapter 来定义一个拦截器: 实现 WebRequestInterceptor

  • 使用Spring的拦截器监测每个Controller或方法的执行时长

    目录 Spring拦截器监测每个Controller或方法的执行时长 首先写一个类(TestInterceptor) 接下来是spring配置文件 拦截器三个方法的执行时机 拦截器三个方法分别是 Spring拦截器监测每个Controller或方法的执行时长 首先写一个类(TestInterceptor) 让他继承HandlerInterceptorAdapter,并重写其中的三个方法,例如: package com.wechat.test; import javax.servlet.http.

随机推荐