SpringMVC笔记(四)拦截器

一、拦截器:Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必 须实现HandlerInterceptor接口

二、实现步骤:

1.自定义实现类实现HandlerInterceptor接口

2.在springMVC中配置文件中的配置相应的拦截器

实现的代码:

1.自定义实现类

package com.neuedu.springmvc.interceptor;

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

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

/*
* 项目名称:springmvc-03
* @author:wzc
* @date 创建时间:2017年8月24日 上午10:37:35
* @Description:自定义拦截器
* @parameter
*   */
public class interceptor implements HandlerInterceptor{

	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {
		System.out.println("afterCompletion");
	}

	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
			throws Exception {
		System.out.println("postHandle");
	}
	@Override
	public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
		System.out.println("preHandle");
		return true;
	}

}

2.在springMVC中配置文件中的配置相应的拦截器

 <!-- 配置拦截器 -->
  <mvc:interceptors>
   <!-- 配置自定义拦截器全类名 -->
     <bean class="com.neuedu.springmvc.interceptor.interceptor"></bean>
  </mvc:interceptors>

三、拦截器工作原理

四、拦截器中的三种方法:

–    preHandle():该方法在目标方法之前被调用,
                    若返回值为true,则继续调用后续的拦截器和目标方法
                    若返回值为false,则不会再调用后续的拦截器和目标方法
                    可以考虑做权限,日志或者事务等!
    –    postHandle():调用目标方法之后,但渲染视图之前被调用
                 可以对请求域中的属性或者视图做出修改!
    –    afterCompletion():渲染视图之后被调用,
                      可以在该方法中进行一些资源清理的操作。

五/多拦截器的实现

可以自定义多个拦截器实现类,然后只需要在SpringMVC-xml文件中进行配置就行

   <!-- 配置拦截器 -->
  <mvc:interceptors>
     <!-- 配置自定义拦截器全类名 -->
     <bean class="com.neuedu.springmvc.interceptor.interceptor"></bean>
 	<!-- 增加拦截器配置 -->
 	<mvc:interceptor >
 	       <!-- 可以配置拦截的请求路径 -->
 	       <mvc:mapping path="/testJson"/>
 	       <!-- 配置自定义拦截器全类名 -->
 	      <bean class="com.neuedu.springmvc.interceptor.SecondInterceptor">
 	      </bean>
 	</mvc:interceptor>
  </mvc:interceptors>

六、多拦截器的执行顺序图

时间: 2024-12-24 03:45:37

SpringMVC笔记(四)拦截器的相关文章

springmvc学习笔记(20)-拦截器

springmvc学习笔记(20)-拦截器 springmvc学习笔记20-拦截器 拦截定义 拦截器配置 针对HandlerMapping配置 类似全局的拦截器 拦截测试 拦截器应用实现登陆认证 需求 登陆controller方法 登陆认证拦截实现 本文主要介绍springmvc中的拦截器,包括拦截器定义和的配置,然后演示了一个链式拦截的测试示例,最后通过一个登录认证的例子展示了拦截器的应用 拦截定义 定义拦截器,实现HandlerInterceptor接口.接口中提供三个方法. public

【SpringMVC学习11】SpringMVC中的拦截器

Springmvc的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理.本文主要总结一下springmvc中拦截器是如何定义的,以及测试拦截器的执行情况和使用方法. 1. springmvc拦截器的定义和配置 1.1 springmvc拦截器的定义 在springmvc中,定义拦截器要实现HandlerInterceptor接口,并实现该接口中提供的三个方法,如下: //测试拦截器1 public class HandlerInterceptor1 im

SpringMVC(AbstractController,拦截器,注解)

1.Controller接口及其实现类 Controller是控制器/处理器接口,只有一个方法handleRequest,用于进行请求的功能处理(功能处理方法),处理完请求后返回ModelAndView对象(Model模型数据部分 和 View视图部分). 如果想直接在处理器/控制器里使用response向客户端写回数据,可以通过返回null来告诉DispatcherServlet我们已经写出响应了,不需要它进行视图解析 Spring默认提供了一些Controller接口的实现类以方便我们使用,

在SpringMVC中使用拦截器(interceptor)拦截CSRF攻击

关于什么是CSRF我这里就不多说了,以前转载的一篇文章(PS:https://www.zifangsky.cn/358.html)已经说得很清楚了.这里只是简单介绍如何在SpringMVC中使用拦截器拦截CSRF攻击.具体代码如下: (1)登录页面: <%@page import="java.security.SecureRandom"%> <%@ page language="java" contentType="text/html; 

SpringMVC学习(十二)——SpringMVC中的拦截器

SpringMVC学习(十二)--SpringMVC中的拦截器 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理.本文主要总结一下SpringMVC中拦截器是如何定义的,以及测试拦截器的执行情况和使用方法. SpringMVC中拦截器的定义和配置 SpringMVC中拦截器的定义 在SpringMVC中,定义拦截器要实现HandlerInterceptor接口,并实现该接口中提供的三个方法,如下: public class Inter

Struts2(十四)拦截器实现权限管理

一.认识拦截器 拦截器也是一个类 拦截器可以在Action被调用之前和之后执行代码 框架很多核心功能是拦截器实现的 拦截器的特点: 拦截器自由组合,增强了灵活性.扩展性.有利于系统解耦 拦截器可以拦截Action请求 在访问的Action执行之前和执行之后执行代码实现某项功能 Struts2: 大部分功能是在拦截器中实现的如:接收输入的参数,数据验证,文件上传,国际化等 应用程序: 需要在Action执行的前后执行特定功能 Action执行时间统计,Action访问权限管理 Action添加功能

SpringMVC 自定义一个拦截器

自定义一个拦截器方法,实现HandlerInterceptor方法 public class FirstInterceptor implements HandlerInterceptor{ /** * 该方法在目标方法之前被调用. * 若返回值为 true, 则继续调用后续的拦截器和目标方法. * 若返回值为 false, 则不会再调用后续的拦截器和目标方法. * * 可以考虑做权限. 日志, 事务等. */ @Override public boolean preHandle(HttpServ

SpringMVC学习16-springmvc拦截器

1.定义拦截器 定义拦截器,实现HandlerInterceptor接口.接口中提供三个方法. public class HandlerInterceptor1 implements HandlerInterceptor { //进入 Handler方法之前执行 //用于身份认证.身份授权 //比如身份认证,如果认证不通过表示当前用户没有登陆,需要此方法拦截不再向下执行 @Override public boolean preHandle(HttpServletRequest request,

java SpringMVC Filter登录拦截器

SpringMVC框架是一个非常强大的java web框架,目前最主流的也是spring mvc的框架今天我们学习下springMVCd的登录拦截器Filter 首先呢,SpringMVC具有统一的入口DIspatcherServlet,所有请求都会通过DIspatcherServlet来进行处理 dispatcherServlet是前置控制器,配置在web.xml中,主要是用来拦截对应的请求,然后将请求根据对应的规则发送到Controller来进行处理 首先在web.xml中进行配置拦截请求

Struts2 (四) — 拦截器

一.拦截器 1.概述 1.1什么是拦截器 ? 在struts2中,拦截器(Interceptor)是用来动态拦截Action执行的对象. ? 拦截器有点类似以前Servlet阶段的Filter(过滤器) , 能够在请求到达Action之前进行拦截操作, 可以在里面进行判断校验. 典型的例子: 登录拦截. 注:过滤器可以过滤servlet,jsp,html , 但拦截器只能拦截Action 1.2 struts2执行流程 ? 客户端请求Action,执行前端控制器,在前端控制器内部创建了Actio