1.文件上传

1.1预备工作,需要两个jar包(Fileupload)

jar包下载路径:

[点击下载https://github.com/suyirulan/putao/tree/master/fileupload_jar]

1.2上传文件的jsp页面如下,注意上传文件时表单form标签的属性method="post" enctype="multipart/form-data"是必须的,并且文件的name=" "也是必须的

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <!DOCTYPE html>
4 <html>
5 <head>
6 <meta charset="UTF-8">
7 <title>上传文件</title>
8 </head>
9 <body>
10 <form action="addStudent" method="post" enctype="multipart/form-data">
11 姓名:<input type="text" name="name"/><br>
12 年龄:<input type="text" name="age"/><br>
13 头像:<input type="file" name="headphoto"/><br>
14 <input type="submit" value="上传"/>
15 </form>
16 </body>
17 </html>

1.3在springmvc配置文件中上传解析器

其中value="99999999"为限制上传文件的最大字节(字节计算:1M=1024k=1024*1024=1048576字节)

1 <!-- 文件上传解析器 -->
2 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
3 <property name="maxUploadSize" value="99999999"></property>
4 </bean>

1.4上传文件的Controller代码

 1 @Controller
2 public class StudentController {
3
4 @RequestMapping("addStudent")
5 public String addStudent(Student stu,HttpServletRequest request,MultipartFile headphoto,Model model) {
6 //1.获取上传文件真实保存路径
7 String path = request.getServletContext().getRealPath("/headphoto");
8 //2.创建一个文件对象
9 File file=new File(path);
10 //若没有此文件则创建
11 if(!file.exists()) {
12 file.mkdirs();
13 }
14 //3.获取文件名
15 String filename=System.currentTimeMillis()+headphoto.getOriginalFilename();
16
17 stu.setPhoto("headphoto/"+filename);
18
19 File targetFile =new File(path+"/"+filename);
20
21 try {
22 FileUtils.writeByteArrayToFile(targetFile, headphoto.getBytes());
23 } catch (IOException e) {
24 // TODO Auto-generated catch block
25 e.printStackTrace();
26 }
27
28 model.addAttribute("stu",stu);
29
30 return "index";
31 }
32 }

进行测试

上传成功

 2.拦截器(拦截的都是控制层地址,filter:页面地址请求都可以拦截)

2.1创建一个类,实现接口Handlerinterceptor

2.2重写接口中的方法

 1 public class MyInterceptor implements HandlerInterceptor{
2
3 @Override
4 public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
5 throws Exception {
6 // TODO Auto-generated method stub
7
8 }
9
10 @Override
11 public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
12 throws Exception {
13 // TODO Auto-generated method stub
14
15 }
16
17 @Override
18 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
19 Object name = request.getSession().getAttribute("name");
20 if(name!=null) {
21 return true;
22 }else {
23 System.out.println("拦截器");
24 return false;
25 }
26 }
27
28 }

2.3把创建的类配置到SpringMVC文件中,其中<mvc:mapping path=" "/>为拦截的,<mvc:exclude-mapping path=" "/>为放行的

1 <!-- 拦截器 -->
2 <mvc:interceptors>
3 <mvc:interceptor>
4 <mvc:mapping path="/user/**"/>
5 <mvc:exclude-mapping path="/user/login1"/>
6 <mvc:exclude-mapping path="/user/denglu"/>
7 <bean class="com.zhiyou100.zhl.interceptor.MyInterceptor"></bean>
8 </mvc:interceptor>
9 </mvc:interceptors>

Fileupload

SpringMVC学习四(文件上传/拦截器)的更多相关文章

  1. struts文件上传拦截器分析

    struts有默认的文件拦截器,一般配置maximumSize就可以了. 知道原理,我们可以写一个类继承它,实现自己的配置上传文件大小的方式.   然后细究页面上传文件的时候,发现了一些问题. act ...

  2. springMVC整理04--文件上传 & 拦截器 & 异常处理

    1.  文件上传 SpringMVC 的文件上传非常简便,首先导入文件上传依赖的 jar: <!-- 文件上传所依赖的 jar 包 --> <dependency> <g ...

  3. SpringMVC 文件上传&拦截器&异常处理

    文件上传 Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的.Spring 用 Jakarta Commons FileUpload ...

  4. SpringMvc(四)- 下载,上传,拦截器

    1.图片下载 图片下载:将服务器端的文件以流的形式写到客户端,通过浏览器保存到本地,实现下载: 1.1 图片下载步骤 1.通过session获取上下文对象(session.getServletCont ...

  5. struts文件上传拦截器中参数的配置(maximumSize,allowedTypes ,allowedExtensions)问题

    <interceptor-ref name="fileUpload"> <param name="allowedTypes">image ...

  6. struts文件上传拦截器maximumSize设置文件大小不起作用

    <interceptor-ref name="fileUpload">                <param name="allowedTypes ...

  7. Struts学习之文件上传

    * 单文件上传:        * 在动作类action中声明相关属性:            * 在动作类action中,要声明与页面中表单name属性同名的属性,同名的属性的类型是File类型:  ...

  8. (转)SpringMVC学习(九)——SpringMVC中实现文件上传

    http://blog.csdn.net/yerenyuan_pku/article/details/72511975 这一篇博文主要来总结下SpringMVC中实现文件上传的步骤.但这里我只讲单个文 ...

  9. java web(四)文件上传与下载

     一.文件上传原理 1.在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制:但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定. 通 ...

  10. 转:【专题十一】实现一个基于FTP协议的程序——文件上传下载器

    引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...

随机推荐

  1. vue2中安装vuex

    2022年2月7日,vue3成为默认版本,npm i vue安装的直接就是vue3了 npm i -vuex 安装的是vuex4 vuex4只能在vue3中使用 vue2中,要用vuex3版本,安装 ...

  2. arch 安装xfce

    参照 https://www.cnblogs.com/3V4NZ/p/15330275.html 1.安装linux显示服务器 pacman -S xorg Xorg是一个开源的X Window系统的 ...

  3. #线段树#CF438D The Child and Sequence

    题目 支持区间求和,区间取模,单点修改 分析 首先区间取模一直不停取模最多log次是有效的, 所以处理区间最大值,若区间最大值小于模数直接退出,否则暴力修改 时间复杂度\(O(mlog^2n)\) 代 ...

  4. 使用OHOS SDK构建benchmark

    参照OHOS IDE和SDK的安装方法配置好开发环境. 从github下载源码. 执行如下命令: git clone --depth=1 https://github.com/google/bench ...

  5. 【直播回顾】OpenHarmony知识赋能五期第三课——多媒体整体介绍

    5月5日晚上19点,知识赋能第五期第三节课<OpenHarmony标准系统多媒体子系统整体介绍>,在OpenHarmony开发者成长计划社群内成功举行. 本期课程,由深开鸿资深技术专家郭岳 ...

  6. 直播预告丨OpenHarmony标准系统多媒体子系统之音频解读

    今晚19点,OpenHarmony开源开发者成长计划知识赋能第五期"掌握OpenHarmony多媒体的框架原理"的第四节直播课,即将开播! 深开鸿资深技术专家苑春鸽老师,将在Ope ...

  7. HDC2021技术分论坛:跨端分布式计算技术初探

    作者:zhengkai,分布式通信首席技术专家 当今的移动应用都向着智能化和多样化方向发展,例如AI辅助,VR/AR应用,沉浸式游戏等.然而现实中的移动设备,因为便携性要求受限于尺寸.电池容量以及温控 ...

  8. HarmonyOS Connect认证测试

     原文链接:https://mp.weixin.qq.com/s/zRG97PWPqfDo0vfwQWSUew,点击链接查看更多技术内容:   在HarmonyOS Connect生态产品的认证测试过 ...

  9. .NET Emit 入门教程:第六部分:IL 指令:8:详解 ILGenerator 指令方法:类型转换指令

    前言: 经过前面几篇的学习,我们了解到指令的大概分类,如: 参数加载指令,该加载指令以 Ld 开头,将参数加载到栈中,以便于后续执行操作命令. 参数存储指令,其指令以 St 开头,将栈中的数据,存储到 ...

  10. 一个.NET内置依赖注入的小型强化版

    前言 .NET生态中有许多依赖注入容器.在大多数情况下,微软提供的内置容器在易用性和性能方面都非常优秀.外加ASP.NET Core默认使用内置容器,使用很方便. 但是笔者在使用中一直有一个头疼的问题 ...