springmvc中实现拦截器_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > springmvc中实现拦截器

springmvc中实现拦截器

 2018/9/1 3:47:52  gwzan  程序员俱乐部  我要评论(0)
  • 摘要:Interceptor拦截器实现对每一个请求处理前后进行相关的业务,类似于servlet的Filter普通的Bean去继承HandlerInterceptorAdapter或实现HandlerInterceptor来自定义拦截器通过重写WebMvcConfigurerAdapter的addInterceptors方法来注册自定义的拦截器示例如下:在“springmvc简单构建一个项目(一)”的基础上增加以下这些:1.自定义拦截器packagecom.zgw.springmvc
  • 标签:MVC 实现 Spring
  • Interceptor拦截器实现对每一个请求处理前后进行相关的业务,类似于servlet的Filter
  • 普通的Bean去继承HandlerInterceptorAdapter或实现HandlerInterceptor来自定义拦截器
  • 通过重写WebMvcConfigurerAdapter的addInterceptors方法来注册自定义的拦截器

示例如下:

在“springmvc简单构建一个项目(一)”的基础上增加以下这些:

?

1.自定义拦截器

class="java">package com.zgw.springmvc;

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

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

/**
 * 实现HandlerInterceptor接口或继承HandlerInterceptorAdapter
 * 来实现自定义拦截器
 * @author zan
 *
 */
public class InterceptorDemo implements HandlerInterceptor{

	//请求前执行
	@Override
	public boolean preHandle(HttpServletRequest request, 
			HttpServletResponse response, Object handler) throws Exception {
		long startTime = System.currentTimeMillis();
		request.setAttribute("startTime", startTime);
		return true;
	}

	//请求发生后执行
	@Override
	public void postHandle(HttpServletRequest request, 
			HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		long startTime = (Long) request.getAttribute("startTime");
		request.removeAttribute("startTime");
		long endTime = System.currentTimeMillis();
		System.out.println("本次请求时间为:" + new Long(endTime - startTime)+"ms");
		request.setAttribute("handlingTime", endTime - startTime);
	}

	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {

	}

}

?2.配置,在MySpringmvcConfig类中添加:

?

/*
	 * 配置拦截器的Bean
	 */
	@Bean
	public InterceptorDemo interceptor() {
		return new InterceptorDemo();
	}

	/*
	 * 重写addInterceptors方法,注册一个拦截器
	 */
	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		registry.addInterceptor(interceptor());
	}

?

3.运行,访问http://localhost:8080/springmvc_withoutwebxml/index,结果如下:

?



?

?

?

?

?

?

?

?

?

?

????????

??

?

?

?

上一篇: springmvc简单构建一个项目(一) 下一篇: 没有下一篇了!
发表评论
用户名: 匿名