SpringMVC-拦截器
标签: SpringMVC
简介

执行流程
案例
- 控制器代码
package edu.yjsj.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping(path = "/user")
public class UserController {
@RequestMapping(path = "/testInterceptor")
public String testInterceptor(){
System.out.println("执行拦截器");
return "success";
}
}
- 拦截器代码—实现-HandlerInterceptor接口
package edu.yjsj.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyInterceptor implements HandlerInterceptor {
@Override
/**
* 预处理:controller方法执行前
* return true 放行,执行下一个拦截器,如果没有则执行controller中的方法
* return false 不放行,可以选择跳转到其他的页面
*/
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
System.out.println("拦截器预处理");
//httpServletRequest.getRequestDispatcher("/WEB-INF/pages/error.jsp").forward(httpServletRequest,httpServletResponse);
return true;
}
/**
* 后处理方法:controller方法执行后,success.jsp执行后
* @param httpServletRequest
* @param httpServletResponse
* @param o
* @param modelAndView
* @throws Exception
*/
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
System.out.println("后处理方法执行。。");
}
/**
* success.jsp页面执行后再执行
* @param httpServletRequest
* @param httpServletResponse
* @param o
* @param e
* @throws Exception
*/
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
System.out.println("jsp页面响应后");
}
}
- 配置springmvc.xml文件
<!-- 配置拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- 拦截的具体方法 -->
<mvc:mapping path="/user/*"/>
<!-- 不要拦截的方法
<mvc:exclude-mapping path=""/>
-->
<!-- 配置拦截器对象 -->
<bean class="edu.yjsj.interceptor.MyInterceptor"/>
</mvc:interceptor>
<mvc:interceptor>
<!-- 拦截的具体方法 -->
<mvc:mapping path="/user/*"/>
<!-- 不要拦截的方法
<mvc:exclude-mapping path=""/>
-->
<!-- 配置拦截器对象 -->
<bean class="edu.yjsj.interceptor.MyInterceptor2"/>
</mvc:interceptor>
</mvc:interceptors>
拦截器实体类方法执行分析

preHandle方法
预处理:controller方法执行前
return true 放行,执行下一个拦截器,如果没有则执行controller中的方法
return false 不放行,可以选择跳转到其他的页面
智能推荐
拦截器(SpringMVC)
拦截器定义: Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。 要使用Spring MVC中的拦截器,就需要对拦截器类进行定义和配置。通常拦截器类可以通过两种方式来定义。 1.通过实现HandlerInterceptor接口,或继承H...
SpringMVC——拦截器
文章目录 拦截器与过滤器的区别 自定义实现拦截器 1. 新建一个Module: springmvc-07-Interceptor,添加web支持 2. 配置web.xml 3. 在resources文件夹下新建文件 springmvc-servlet.xml并在文件中添加以下信息: 4. 编写一个测试拦截器:MyInterceptor 5.在springmvc-servlet.xml中配置拦截器 ...
SpringMVC拦截器
SpringMVC中的拦截器和Servlet中的过滤器效果类似,都是在Controller前面后者后面做一些事情,但是两者也有一些区别: 过滤器可以应用于所有的web技术, 包括SpringMVC,但是拦截器是SpringMVC中的东西,只能用于该框架 过滤器可以拦截所有请求,包括静态资源如:html,css等。拦截器不可以 拦截器的原理很简单,通过一张图来描述: 当请求到...
SpringMVC拦截器
SpringMVC拦截器 一、配置拦截器 详细说明: mapping:表示拦截器的拦截路径范围 /** 表示拦截任何路径 /* 表示拦截任意的一级路径 /工程名 /** 任意路径 不会超过SpringMVC DispathServlet的最大路径 ** bean:让Spring 去创建相应的拦截对象给我们使用 补充: 1、jsp 都不会过滤 处于放行状态 2、/** 不是表示的全网站任意路径 最大...
SpringMVC拦截器
一、作用 SpringMVC拦截器可以拦截客户端发送的请求,并在调用处理方法前后做出一定处理 二、实现 1、自定义拦截器Interceptor类 创建一个名为MyInterceptor的java类,并实现HandlerInterceptor接口,如下: 2、配置拦截器 ①拦截所有请求 在Spring配置文件application.xml中添加 ②拦截指定请求 三、分析源代码 1、preHandle...
猜你喜欢
SpringMVC拦截器
SpringMVC拦截器 项目结构 配置文件 pom.xml web.xml**(重点:中文乱码的配置)** spring.xml**(重点:配置拦截器)** 控制器 UserController 拦截器 MyInterceptor1(第一个拦截器) MyInterceptor2(第二个拦截器) 前台页面 index.jsp success.jsp error.jsp...
SpringMVC——拦截器
拦截器 Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器可以实现HandlerInterceptor接口,也可以继承HandlerInterceptorAdapter 适配器类 拦截器中有三个方法 ①preHandle():这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求 request 进行处理。如果程序员决定该拦截器对请求...
SpringMVC 拦截器
一、springmvc 拦截器的实现 • 创建拦截器并实现HandleInterceptor接口,也可以实现WebRequestInterceptor接口,但是WebRequestInterceptor接口中preHandle方法没有返回值,所以不能通过此方法终止请求 • 在Spring MVC配置文件中以bean的形式注册拦截器,可以将bean配置在interceptors标...
Docker-Compose部署nginx 和lnmp
Docker-Compose tomcat lnmp tomcat 使用Docker-Compose部署Nginx代理Tomcat集群,实现负载均衡 在这个目录下创建多个目录 切换到nginx目录修改nginx的主配置文件: [root@host1 compose]# cd nginx/ [root@host1 nginx]# vim default.conf 在末尾添加: 修改: 切换到tmca...
19-20年月度行业分析
Table of Contents 1 对各一级行业分析 2 对女装行业进行分析 对各一级行业分析 platform cid industry category themonth 销售额 访客 客群指数 行业简称 月 年 年月 0 天猫 50010368 ZIPPO/瑞士军刀/眼镜 太阳眼镜 2020-01-01 62484514.13 6663217 ...
