`

springmvc中实现拦截器

阅读更多
  • Interceptor拦截器实现对每一个请求处理前后进行相关的业务,类似于servlet的Filter
  • 普通的Bean去继承HandlerInterceptorAdapter或实现HandlerInterceptor来自定义拦截器
  • 通过重写WebMvcConfigurerAdapter的addInterceptors方法来注册自定义的拦截器

示例如下:

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

 

1.自定义拦截器

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拦截器拦截js等静态资源文件的解决方法

    在本文中,我们讨论了三种解决SpringMVC拦截器拦截静态资源文件的方法,并对这些方法的优劣进行了分析。 方案一是在拦截器中排除静态资源路径。在SpringMVC的配置文件中(通常是spring-mvc.xml),可以通过配置元素...

    SpringMVC中的拦截器-拦截器方法的作用和执行顺序.avi

    SpringMVC中的拦截器-拦截器方法的作用和执行顺序.avi

    SpringMVC 中的拦截器与异常处理

    在SpringMVC框架中,拦截器(Interceptor)和异常处理是两个重要的概念,它们对于构建健壮、可维护的Web应用程序至关重要。本文将深入探讨这两个主题,并解释它们如何协同工作以提升应用性能和用户体验。 首先,让...

    SpringMVC-12 拦截器

    在本教程“SpringMVC-12 拦截器”中,我们将深入探讨如何实现和配置自定义拦截器,以及多个拦截器的执行顺序。 首先,我们来了解如何创建一个自定义的拦截器。在Spring MVC中,我们需要创建一个实现了`...

    企业级开发-SpringMVC使用拦截器实现用户登录权限验证实验报告.docx

    本实验报告将探讨如何利用 SpringMVC 的拦截器(Interceptor)来实现用户登录权限验证,确保只有已登录的用户才能访问特定的受保护资源。 首先,我们来看一下实验的基本步骤: 1. 创建 `User` 类:这是表示用户...

    SpringMVC 拦截器 实现 登录退出功能

    综上所述,本项目是一个适合初学者了解和实践SpringMVC拦截器功能的小程序。通过学习和实践,你可以掌握如何使用拦截器实现登录验证和安全退出,同时加深对Intelli IDEA的使用理解。在实际应用中,拦截器常用于权限...

    springMVC拦截器项目

    SpringMVC 拦截器项目是一个典型的 Web 应用开发示例,它利用 SpringMVC 框架中的拦截器(Interceptor)机制来实现特定的功能,如权限控制、日志记录、性能统计等。SpringMVC 是 Spring 框架的一部分,专为构建基于 ...

    基于springMVC的session拦截器

    - 为了提高性能,不要在拦截器中执行耗时的操作,如数据库查询。只做必要的检查和设置。 - 如果需要共享拦截器逻辑,可以考虑使用Spring的`@Component`和`@Order`注解,结合`@EnableWebMvc`和`...

    SpringMVC配置拦截器实现登录控制的方法

    4. SpringMVC中的拦截器实现登录控制的流程:首先配置拦截器,指定需要拦截的URL路径和排除的URL路径(如登录页面和静态资源路径等)。拦截器的实现类中,preHandle方法中首先检查请求的URI是否在排除的URL列表中,...

    spring+springMVC+mybatis拦截器分页 源码

    综上所述,"spring+springMVC+mybatis拦截器分页"项目结合了三大框架的优势,通过SpringMVC的拦截器实现业务逻辑的扩展,利用MyBatis的分页插件处理后台数据,再由EasyUI提供友好的用户界面。这样的组合为高效且可控...

    SSM笔记-SpringMVC的自定义拦截器

    在SpringMVC框架中,拦截器(Interceptor)是一种强大的机制,它可以用来在请求处理之前、之后或处理过程中执行额外的逻辑。自定义拦截器允许开发者根据业务需求进行更精细的控制,例如权限验证、日志记录、性能统计...

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

    在Spring MVC中,拦截器是通过实现`HandlerInterceptor`接口或者继承`HandlerInterceptorAdapter`抽象类来创建的。 `HandlerInterceptor`接口定义了三个方法: 1. `preHandle(HttpServletRequest request, ...

    SpringMVC时间拦截器

    SpringMVC框架下对限定时间拦截(适用于初学者)

    springMVC 详细版本 拦截器源码

    springMVC 拦截器源代码 内有详细文档介绍操作 @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { //可以通过...

    SpringMVC拦截器例子详解

    - 使用Java配置时,可以通过`@EnableWebMvc` 注解启用Web MVC配置,并在`WebMvcConfigurer` 实现类中重写`addInterceptors()` 方法来注册拦截器。 3. **自定义拦截器**: - 自定义拦截器需要继承`...

    【SpringMVC】 4.3 拦截器(csdn)————程序.pdf

    在SpringMVC框架中,拦截器(Interceptor)扮演着不可或缺的角色,它允许开发者在请求被处理器处理之前和之后进行额外的操作,如日志记录、权限验证、性能统计等。拦截器机制极大地扩展了SpringMVC的功能,提升了...

    基于springMVC的session拦截器.rar

    在给定的“基于springMVC的session拦截器.rar”压缩包中,我们可能找到了一个实现session拦截器的示例项目——"LoginInterceptorDemo"。 首先,理解Session的概念是至关重要的。Session是Web服务器为特定用户会话...

    Springmvc登录拦截器Demo

    在Spring MVC框架中,登录拦截器是一个非常关键的组件,它负责在用户访问特定资源之前进行身份验证。本文将深入探讨如何使用Spring MVC的拦截器实现登录验证,并提供相关知识点。 1. **Spring MVC 拦截器简介** ...

    SpringMvc 拦截器

    拦截器是AOP(面向切面编程)思想在Spring MVC中的体现,它通过在请求到达目标控制器之前插入额外的处理步骤,实现了对HTTP请求的预处理和后处理。Spring MVC的拦截器基于Servlet API的Filter和HandlerInterceptor...

    SpringMVC拦截器

    ### SpringMVC拦截器 #### 一、拦截器概述 拦截器(Interceptor)是一种轻量级、低侵入式的AOP实现方式,在SpringMVC框架中有着广泛的应用。它主要用于处理那些与业务逻辑无关但又频繁出现的功能需求,如日志记录...

Global site tag (gtag.js) - Google Analytics