SpringMVC总结(十二)--自定义一个拦截器HelloWorld并加以简单说明

本文内容全部来自尚硅谷

本文代码来自SpringMVC总结(十一)--SpringMVC_RESTRUL_CRUD显示所有员工信息

目录

简介

HelloWorld

新建一个java文件

文件内容如下

修改spirngmvc配置文件

添加自定义的拦截器

显示效果成功了

补充

1、

2、代码执行顺序是

第一个执行preHandle方法

第二个执行的是目标函数

第三个是postHandle方法

第四个是afterCompletion方法


简介

HelloWorld

新建一个java文件

文件内容如下

必须实现HandlerInterceptor

package com.atguigu.springmvc.interceptors;

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

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

public class FirstInterceptor implements HandlerInterceptor{

	/**
	 * 该方法在目标方法之前被调用.
	 * 若返回值为 true, 则继续调用后续的拦截器和目标方法. 
	 * 若返回值为 false, 则不会再调用后续的拦截器和目标方法. 
	 * 
	 * 可以考虑做权限. 日志, 事务等. 
	 */
	@Override
	public boolean preHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler) throws Exception {
		System.out.println("[FirstInterceptor] preHandle");
		return true;
	}

	/**
	 * 调用目标方法之后, 但渲染视图之前. 
	 * 可以对请求域中的属性或视图做出修改. 
	 */
	@Override
	public void postHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		System.out.println("[FirstInterceptor] postHandle");
	}

	/**
	 * 渲染视图之后被调用. 释放资源
	 */
	@Override
	public void afterCompletion(HttpServletRequest request,
			HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		System.out.println("[FirstInterceptor] afterCompletion");
	}

}

修改spirngmvc配置文件

添加自定义的拦截器

显示效果成功了

补充

1、

这个拦截器好像是拦截了所有的,并未指定不拦截谁

2、代码执行顺序是

第一个执行preHandle方法

该方法在目标方法之前被调用;

若返回值为 true, 则继续调用后续的拦截器和目标方法,若返回值为 false, 则不会再调用后续的拦截器和目标方法

可以考虑做权限. 日志, 事务等. 

第二个执行的是目标函数

第三个是postHandle方法

     1 调用目标方法之后, 但渲染视图之前. 
     2 可以对请求域中的属性或视图做出修改. 

第四个是afterCompletion方法

      渲染视图之后被调用. 释放资源

猜你喜欢

转载自blog.csdn.net/lsx2017/article/details/81706191