狂神说SpringMVC08:拦截器+文件上传下载 您所在的位置:网站首页 狂神说springmvc 狂神说SpringMVC08:拦截器+文件上传下载

狂神说SpringMVC08:拦截器+文件上传下载

2024-07-11 21:44| 来源: 网络整理| 查看: 265

狂神说SpringBoot系列连载课程,通俗易懂,基于SpringBoot2.2.5版本,欢迎各位狂粉转发关注学习。未经作者授权,禁止转载

这是SpringMVC视频同步的最后一章:拦截器以及文件的上传和下载实现!

拦截器

概述

SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。

过滤器与拦截器的区别:拦截器是AOP思想的具体应用。

过滤器

servlet规范中的一部分,任何java web工程都可以使用

在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截

拦截器

拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用

拦截器只会拦截访问的控制器方法, 如果访问的是jsp/html/css/image/js是不会进行拦截的

自定义拦截器

那如何实现拦截器呢?

想要自定义拦截器,必须实现 HandlerInterceptor 接口。

1、新建一个Moudule , springmvc-07-Interceptor  , 添加web支持

2、配置web.xml 和 springmvc-servlet.xml 文件

3、编写一个拦截器

package com.kuang.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 {    //在请求处理的方法之前执行    //如果返回true执行下一个拦截器    //如果返回false就不执行下一个拦截器    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {        System.out.println("------------处理前------------");        return true;   }    //在请求处理方法执行之后执行    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {        System.out.println("------------处理后------------");   }    //在dispatcherServlet处理后执行,做清理工作.    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {        System.out.println("------------清理------------");   } }

4、在springmvc的配置文件中配置拦截器

                                                       

5、编写一个Controller,接收请求

package com.kuang.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; //测试拦截器的控制器 @Controller public class InterceptorController {    @RequestMapping("/interceptor")    @ResponseBody    public String testFunction() {        System.out.println("控制器中的方法执行了");        return "hello";   } }

6、前端 index.jsp

拦截器测试


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有