- 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拦截器拦截静态资源文件的方法,并对这些方法的优劣进行了分析。 方案一是在拦截器中排除静态资源路径。在SpringMVC的配置文件中(通常是spring-mvc.xml),可以通过配置元素...
SpringMVC中的拦截器-拦截器方法的作用和执行顺序.avi
在SpringMVC框架中,拦截器(Interceptor)和异常处理是两个重要的概念,它们对于构建健壮、可维护的Web应用程序至关重要。本文将深入探讨这两个主题,并解释它们如何协同工作以提升应用性能和用户体验。 首先,让...
在本教程“SpringMVC-12 拦截器”中,我们将深入探讨如何实现和配置自定义拦截器,以及多个拦截器的执行顺序。 首先,我们来了解如何创建一个自定义的拦截器。在Spring MVC中,我们需要创建一个实现了`...
本实验报告将探讨如何利用 SpringMVC 的拦截器(Interceptor)来实现用户登录权限验证,确保只有已登录的用户才能访问特定的受保护资源。 首先,我们来看一下实验的基本步骤: 1. 创建 `User` 类:这是表示用户...
综上所述,本项目是一个适合初学者了解和实践SpringMVC拦截器功能的小程序。通过学习和实践,你可以掌握如何使用拦截器实现登录验证和安全退出,同时加深对Intelli IDEA的使用理解。在实际应用中,拦截器常用于权限...
SpringMVC 拦截器项目是一个典型的 Web 应用开发示例,它利用 SpringMVC 框架中的拦截器(Interceptor)机制来实现特定的功能,如权限控制、日志记录、性能统计等。SpringMVC 是 Spring 框架的一部分,专为构建基于 ...
- 为了提高性能,不要在拦截器中执行耗时的操作,如数据库查询。只做必要的检查和设置。 - 如果需要共享拦截器逻辑,可以考虑使用Spring的`@Component`和`@Order`注解,结合`@EnableWebMvc`和`...
4. SpringMVC中的拦截器实现登录控制的流程:首先配置拦截器,指定需要拦截的URL路径和排除的URL路径(如登录页面和静态资源路径等)。拦截器的实现类中,preHandle方法中首先检查请求的URI是否在排除的URL列表中,...
综上所述,"spring+springMVC+mybatis拦截器分页"项目结合了三大框架的优势,通过SpringMVC的拦截器实现业务逻辑的扩展,利用MyBatis的分页插件处理后台数据,再由EasyUI提供友好的用户界面。这样的组合为高效且可控...
在SpringMVC框架中,拦截器(Interceptor)是一种强大的机制,它可以用来在请求处理之前、之后或处理过程中执行额外的逻辑。自定义拦截器允许开发者根据业务需求进行更精细的控制,例如权限验证、日志记录、性能统计...
在Spring MVC中,拦截器是通过实现`HandlerInterceptor`接口或者继承`HandlerInterceptorAdapter`抽象类来创建的。 `HandlerInterceptor`接口定义了三个方法: 1. `preHandle(HttpServletRequest request, ...
SpringMVC框架下对限定时间拦截(适用于初学者)
springMVC 拦截器源代码 内有详细文档介绍操作 @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { //可以通过...
- 使用Java配置时,可以通过`@EnableWebMvc` 注解启用Web MVC配置,并在`WebMvcConfigurer` 实现类中重写`addInterceptors()` 方法来注册拦截器。 3. **自定义拦截器**: - 自定义拦截器需要继承`...
在SpringMVC框架中,拦截器(Interceptor)扮演着不可或缺的角色,它允许开发者在请求被处理器处理之前和之后进行额外的操作,如日志记录、权限验证、性能统计等。拦截器机制极大地扩展了SpringMVC的功能,提升了...
在给定的“基于springMVC的session拦截器.rar”压缩包中,我们可能找到了一个实现session拦截器的示例项目——"LoginInterceptorDemo"。 首先,理解Session的概念是至关重要的。Session是Web服务器为特定用户会话...
在Spring MVC框架中,登录拦截器是一个非常关键的组件,它负责在用户访问特定资源之前进行身份验证。本文将深入探讨如何使用Spring MVC的拦截器实现登录验证,并提供相关知识点。 1. **Spring MVC 拦截器简介** ...
拦截器是AOP(面向切面编程)思想在Spring MVC中的体现,它通过在请求到达目标控制器之前插入额外的处理步骤,实现了对HTTP请求的预处理和后处理。Spring MVC的拦截器基于Servlet API的Filter和HandlerInterceptor...
### SpringMVC拦截器 #### 一、拦截器概述 拦截器(Interceptor)是一种轻量级、低侵入式的AOP实现方式,在SpringMVC框架中有着广泛的应用。它主要用于处理那些与业务逻辑无关但又频繁出现的功能需求,如日志记录...