返回顶部
首页 > 资讯 > 精选 >Java中SpringBoot拦截器与文件上传怎么实现
  • 242
分享到

Java中SpringBoot拦截器与文件上传怎么实现

2023-06-30 13:06:22 242人浏览 泡泡鱼
摘要

今天小编给大家分享一下Java中SpringBoot拦截器与文件上传怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。拦

今天小编给大家分享一下Java中SpringBoot拦截器与文件上传怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

拦截器

拦截器的概念

动态拦截Actioon调用的对象,使开发者在一个Actioon执行的前后执行一段代码,也可以在Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式。

作用:

动态拦截Action调用的对象(也就是实际项目中的controller层的接口)

一般拦截器用于对用户访问的限制。如当用户没有登录时访问主页面,则可以使用拦截器进行拦截并重定向到登录页面。

拦截器的配置

创建interceptor 文件夹并创建LoginInterceptor Java文件且实现HandlerInterceptor 这个接口。

//必须实现HandlerInterceptor这个接口public class LoginInterceptor implements HandlerInterceptor {        @Override    public boolean preHandle(httpservletRequest request, HttpServletResponse response, Object handler) throws Exception {        HttpSession session = request.getSession();        Object loginUser = session.getAttribute("loginUser");        if(loginUser != null) {            return true;        }        request.setAttribute("msg" ,"请登录!");//        response.sendRedirect("/");        request.getRequestDispatcher("/").forward(request,response);        return  false;    }    //目标方法执行以后    @Override    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {    }        @Override    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {        HandlerInterceptor.super.afterCompletion(request, response, handler, ex);    }}

配置拦截器

创建 config 文件夹并创建 AdminWEBConfig 文件并实现WebmvcConfigurer的addInterceptors。

@Configurationpublic class AdminWebConfig implements WebMvcConfigurer {    @Override    public void addInterceptors(InterceptorReGIStry registry) {        registry.addInterceptor(new LoginInterceptor())                .addPathPatterns("/**") //静态路径也会被拦截                .excludePathPatterns("/","/login","/CSS/**","/fonts/**" ,"/images/**","/js/**");    }}

拦截器的原理

根据当前请求,找到**HandlerExecutionChain【**可以处理请求的handler以及handler的所有 拦截器】

先来顺序执行 所有拦截器的 preHandle方法

  • 如果当前拦截器prehandler返回为true。则执行下一个拦截器的preHandle

  • 如果当前拦截器返回为false。直接 倒序执行所有已经执行了的拦截器的 afterCompletion;

如果任何一个拦截器返回false。直接跳出不执行目标方法

所有拦截器都返回True。执行目标方法

倒序执行所有拦截器的postHandle方法。

前面的步骤有任何异常都会直接倒序触发 afterCompletion

页面成功渲染完成以后,也会倒序触发 afterCompletion

文件上传

在之前我们学习SSM的时候就知道了 文件上传 这个功能,所以在 springBoot中我们就不在过多介绍,原理其实都差不多。

前端文件:

<fORM method="post" action="/upload" enctype="multipart/form-data">    <input type="file" name="file"><br>    <input type="submit" value="提交"></form>

Controller层的配置:

@Controllerpublic class FileController {    @GetMapping("/updateFile")    public String FileUp(){        return "FileUp";    }  @PostMapping("/upload") // //new annotation since 4.3    public String singleFileUpload(@RequestParam("file") MultipartFile file,                                   RedirectAttributes redirectAttributes) {        if (file.isEmpty()) {            redirectAttributes.addFlashAttribute("message", "Please select a file to upload");            return "redirect:uploadStatus";        }        try {            // Get the file and save it somewhere            byte[] bytes = file.getBytes();            Path path = Paths.get( file.getOriginalFilename());            Files.write(path, bytes);            redirectAttributes.addFlashAttribute("message",                    "You successfully uploaded '" + file.getOriginalFilename() + "'");        } catch (IOException e) {            e.printStackTrace();        }        return "redirect:/main.html";    }}

更改文件上传大小

在application.properties中配置文件大小:

spring.servlet.multipart.max-file-size=10MB //单文件大小
spring.servlet.multipart.max-request-size=100MB //多文件

以上就是“Java中SpringBoot拦截器与文件上传怎么实现”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: Java中SpringBoot拦截器与文件上传怎么实现

本文链接: https://lsjlt.com/news/329327.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java中SpringBoot拦截器与文件上传怎么实现
    今天小编给大家分享一下Java中SpringBoot拦截器与文件上传怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。拦...
    99+
    2023-06-30
  • SpringBoot拦截器与文件上传实现方法与源码分析
    目录一、拦截器1、创建一个拦截器2、配置拦截器二、拦截器原理三、文件上传四、文件上传流程一、拦截器 拦截器我们之前在springmvc已经做过介绍了 大家可以看下【SpringMVC...
    99+
    2024-04-02
  • Java全面深入探究SpringBoot拦截器与文件上传
    目录拦截器拦截器的概念拦截器的配置配置拦截器拦截器的原理文件上传更改文件上传大小拦截器 拦截器的概念 动态拦截Actioon调用的对象,使开发者在一个Actioon执行的前后执行一段...
    99+
    2024-04-02
  • SpringMVC实现文件上传与下载、拦截器、异常处理器等功能
    目录文件下载 文件上传 拦截器 拦截器的配置 多个拦截器的执行顺序 异常处理器 基于配置的异常处理 基于注解的异常处理 总结文件下载 使用ResponseEntity实现下载文件的...
    99+
    2024-04-02
  • SpringBoot实现单文件与多文件上传
    目录一、公共文件存储代码1.FileUploadUtils.java2.FileUtils.java3.MimeTypeUtils.java4.FileException.java5...
    99+
    2024-04-02
  • 怎么在Springboot实现拦截器功能
    本篇内容介绍了“怎么在Springboot实现拦截器功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!preHandle: 预先处...
    99+
    2023-07-02
  • SpringBoot怎么实现文件上传与下载功能
    这篇“SpringBoot怎么实现文件上传与下载功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot怎么实...
    99+
    2023-07-06
  • java怎么实现文件上传
    (1)准备好前台页面Upload.html表单 action=上传文件后台接口 method=“post”enctype=“multipart/form-data”文件输入框 (2)加入相应的jar包免费在线视频教程分...
    99+
    2017-05-26
    java 实现 文件上传
  • Springboot文件上传功能怎么实现
    这篇文章主要介绍了Springboot文件上传功能怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Springboot文件上传功能怎么实现文章都会有所收获,下面我们一起来看看吧。1.新建文件上传页面在st...
    99+
    2023-07-06
  • springboot异步上传文件怎么实现
    在Spring Boot中实现异步上传文件可以通过使用@Async注解实现。下面是一个简单的示例代码: 首先,创建一个Contro...
    99+
    2024-03-07
    springboot
  • SpringBoot实现单文件与多文件上传功能
    目录1.单文件上传2.多文件上传1.单文件上传 首先创建一个Spring Boot项目,并添加spring-boot-starter-web依赖 然后创建一个upload.jsp文件...
    99+
    2024-04-02
  • Java怎么实现文件压缩与上传FTP
    这篇文章主要介绍“Java怎么实现文件压缩与上传FTP”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java怎么实现文件压缩与上传FTP”文章能帮助大家解决问题。Java文件压缩与上传FTP文件压缩...
    99+
    2023-07-02
  • 【java】java实现大文件的分片上传与下载(springboot+vue3)
    文章目录 1.1 项目背景1.2 项目目标2.1 业务流程2.2 系统用例2.3 系统总体功能3.1 技术选型4.1 文件上传模块4.2 文件下载模块4.3 数据库设计5.1 大文件上传实现5.2 大文件下载实现 源码: htt...
    99+
    2023-08-16
    java spring boot spring vue
  • Java selenium上传文件怎么实现
    本篇内容主要讲解“Java selenium上传文件怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java selenium上传文件怎么实现”吧!下载和安装AutoI...
    99+
    2023-06-30
  • 【SpringBoot+MyBatisPlus】文件上传与文件下载的应用与实现
    文章目录 前言一.文件上传二.改进三.文件下载四.上传图片/回显图片 前言 一次“上传文件”的点击蕴含着一轮请求,我们要做的就是针对每一次的请求进行i/o处理,并返回给前端用户 一.文...
    99+
    2023-09-08
    spring boot java mybatis
  • 在springboot中怎么使用拦截器
    这篇文章主要介绍“在springboot中怎么使用拦截器”,在日常操作中,相信很多人在在springboot中怎么使用拦截器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在springboot中怎么使用拦截器...
    99+
    2023-06-26
  • Java过滤器和拦截器怎么实现
    这篇文章主要介绍“Java过滤器和拦截器怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java过滤器和拦截器怎么实现”文章能帮助大家解决问题。一、过滤器与拦截器相同点拦截器与过滤器都是体现了...
    99+
    2023-07-06
  • SpringBoot简单实现文件上传
    目录1.创建SpringBoot项目2.修改application.properties配置文件3.编写控制器UserController类4.编写前端页面index.html5.效...
    99+
    2024-04-02
  • SpringBoot实现文件上传功能
    经典的文件上传 服务器处理上传文件一般都是先在请求中读取文件信息,然后改变名称保存在服务器的临时路径下,最后保存到服务器磁盘中。本次以thymeleaf搭建demo,因此需要引入th...
    99+
    2024-04-02
  • SpringBoot如何实现单文件与多文件上传功能
    这篇文章将为大家详细讲解有关SpringBoot如何实现单文件与多文件上传功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.单文件上传首先创建一个Spring Boot项目,并添加spring-boo...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作