Spring MVC 之拦截器(八)

简介: 在springMVC中实现拦截器有两种方式 1、实现HandlerInterceptor接口 2、继承HandlerInterceptorAdaptor类 编写拦截器: 1 package com.
 在springMVC中实现拦截器有两种方式

1、实现HandlerInterceptor接口

2、继承HandlerInterceptorAdaptor类

编写拦截器:

 1 package com.cy.springannotation.interceptor;
 2 
 3 import javax.servlet.http.HttpServletRequest;
 4 import javax.servlet.http.HttpServletResponse;
 5 
 6 import org.apache.log4j.Logger;
 7 import org.springframework.web.servlet.HandlerInterceptor;
 8 import org.springframework.web.servlet.ModelAndView;
 9 /**
10  * 拦截器
11  * @author acer
12  *
13  */
14 public class MyIntercetor implements HandlerInterceptor{
15     private Logger log=Logger.getLogger(this.getClass());
16 
17     @Override
18     public void afterCompletion(HttpServletRequest arg0,
19             HttpServletResponse arg1, Object arg2, Exception arg3)
20             throws Exception {
21         log.info("1---afterCompletion方法-----DispatcherServlet完全处理完请求后被调用,往往执行一些资源清理动作");
22     }
23 
24     @Override
25     public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
26             Object arg2, ModelAndView arg3) throws Exception {
27         log.info("1---postHandle方法----------Controller方法后");
28     }
29 
30     @Override
31     public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,
32             Object arg2) throws Exception {
33         log.info("1---preHandle方法-----------Controller方法前");
34         //如返回为false的时候,拦截器可阻止方法的调用 ,默认返回false
35 //        return false;
36         return true;
37     }
38 
39 }

在springAnnotation-servlet.xml里配置:

 

1  <!-- 配置拦截器 -->
2       <mvc:interceptors>
3         <mvc:interceptor>
4           <mvc:mapping path="/login.do"/>
5           <bean class="com.cy.springannotation.interceptor.MyIntercetor"></bean>
6         </mvc:interceptor>
7      </mvc:interceptors> 

 配置多个拦截器的时候:

 1 <!-- 配置拦截器 -->
 2       <mvc:interceptors>
 3         <mvc:interceptor>
 4           <mvc:mapping path="/login.do"/>  <!-- 如果不配置mapping则默认所有请求均被该拦截器拦截 -->
 5           <bean class="com.cy.springannotation.interceptor.MyIntercetor"></bean>
 6         </mvc:interceptor>
 7         <mvc:interceptor>
 8           <mvc:mapping path="/*"/>
 9           <bean class="com.cy.springannotation.interceptor.SecondIntercetor"></bean>
10         </mvc:interceptor>
11      </mvc:interceptors> 

 

 

登录拦截:

 

控制台显示:

 

相关文章
|
1天前
|
设计模式 前端开发 Java
初识Spring MVC
初识Spring MVC
8 0
|
1天前
|
前端开发 Java 应用服务中间件
Spring MVC框架概述
Spring MVC 是一个基于Java的轻量级Web框架,采用MVC设计模型实现请求驱动的松耦合应用开发。框架包括DispatcherServlet、HandlerMapping、Handler、HandlerAdapter、ViewResolver核心组件。DispatcherServlet协调这些组件处理HTTP请求和响应,Controller处理业务逻辑,Model封装数据,View负责渲染。通过注解@Controller、@RequestMapping等简化开发,支持RESTful请求。Spring MVC具有清晰的角色分配、Spring框架集成、多种视图技术支持以及异常处理等优点。
8 1
|
4天前
|
监控 前端开发 Java
SpringBoot与SpringMVC有哪些区别?
SpringBoot和SpringMVC是Java开发中常用的两个框架,它们都是由Spring框架所提供的,但在功能和使用方式上有着一些区别。
15 2
|
15天前
|
前端开发 Java Spring
[AIGC] Spring Interceptor 拦截器详解
[AIGC] Spring Interceptor 拦截器详解
|
27天前
|
数据采集 前端开发 Java
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
23 3
|
27天前
|
存储 前端开发 Java
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
14 1
|
27天前
|
前端开发 Java Spring
数据之桥:深入Spring MVC中传递数据给视图的实用指南
数据之桥:深入Spring MVC中传递数据给视图的实用指南
33 3
|
27天前
|
前端开发 Java 容器
家族传承:Spring MVC中父子容器的搭建与管理指南
家族传承:Spring MVC中父子容器的搭建与管理指南
26 3
|
27天前
|
前端开发 Java API
头头是道:揭示Spring MVC如何获取和处理请求头数据
头头是道:揭示Spring MVC如何获取和处理请求头数据
25 1
|
27天前
|
前端开发 Java API
饼干探秘:深入Spring MVC中获取Cookie数据的技术解析
饼干探秘:深入Spring MVC中获取Cookie数据的技术解析
18 3