Servelt3.0文件上传作为一种便捷的文件上传方式很是值得我们去应用的

1.Servlet3.0文件上传使用步骤

  • 浏览器端的要求

    • 表单的提交方法必须是post
    • 必须有一个文件上传组件 <input type="file" name="f"/>
    • 必须设置表单的enctype="multipart/form-data
    •  <form action="/upload/upload3" enctype="multipart/form-data"
      method="post">
      用户名:<input type="text" name="username"><br>
      文件:<input
      type="file" name="f">
      <input type="submit"><br>
      </form>
  • 服务器端的要求
    • 在Servelt上添加注解  @MultipartConfig
    •  /**
      * Servlet3.0文件上传下载
      */
      @WebServlet("/upload3")
      @MultipartConfig
      public class upload3 extends HttpServlet {
      private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

2.Servlet3.0文件上传如何获取数据

  • 获取普通上传组件   request.getParameter(name属性的值);
  • 获取文件上传组件   Part p =  request.getPart("表单文件组件的name名");
    • 获取表单文件的name名

      //获取表单提交页面name的属性值
      String name = part.getName();
    • 获取真实文件名
      //获取文件真实文件名
      String header = part.getHeader("content-disposition");
      String realName=header.substring(header.indexOf("filename=")+10,header.length()-1);
    • 获取文件大小
      //获取文件的大小
      long size = part.getSize();
    • 获取文件的输入流
      			//获取文件的输入流
      InputStream inputStream = part.getInputStream();

3.Servlet3.0文件上传可能会遇到的问题

  • 名字重复的问题 如果用户提交了两个1.png只会保存第一次 这样在实际开发中是很不可取的 解决方法有一下

    • 采用随机名称DSJDLSJDIHU739832hsdhf.png
  • 文件安全问题  如果文件都放在WebContext目录下 那么在互联网上任何人都可以访问的到 那么针对重要的文件可以这样做
    • 放在meta-inf目录下
    • 放在web-inf目录下
    • 放在项目外部 计算机文件夹中

Servlet3.0文件上传的更多相关文章

  1. servlet3.0文件上传与下载

    描述:文件上传与下载是在JavaEE中常见的功能,实现文件上传与下载的方式有多种,其中文件上传的方式有: (1)commons-fileupload: (2)Servlet 3.0 实现文件上传 (3 ...

  2. servlet3.0 文件上传功能

    注意 jsp页面中file选择 的要有属性 name='file' package com.webserver.webservice; import java.io.File; import java ...

  3. PHPcms v9.6.0 文件上传漏洞

    title: PHPcms v9.6.0 文件上传漏洞 date: 2021-4-5 tags: 渗透测试,CVE漏洞复现,文件上传 categories: 渗透测试 CVE漏洞复现 文件上传 PHP ...

  4. Spring MVC4使用Servlet3 MultiPartConfigElement文件上传实例

    在这篇文章中,我们将使用Spring MultipartResolver 实现 StandardServletMultipartResolver在Servlet3环境中实现单点和多文件上传功能.Spr ...

  5. 【代码审计】UKCMS_v1.1.0 文件上传漏洞分析

      0x00 环境准备 ukcms官网:https://www.ukcms.com/ 程序源码下载:http://down.ukcms.com/down.php?v=1.1.0 测试网站首页: 0x0 ...

  6. java servlet 3.0文件上传

    在以前,处理文件上传是一个很痛苦的事情,大都借助于开源的上传组件,诸如commons fileupload等.现在好了,很方便,便捷到比那些组件都方便至极.以前的HTML端上传表单不用改变什么,还是一 ...

  7. Android Retrofit 2.0文件上传

    Android Retrofit 实现(图文上传)文字(参数)和多张图片一起上传 使用Retrofit进行文件上传,肯定离不开Part & PartMap. public interface ...

  8. NetCore3.0 文件上传与大文件上传的限制

    NetCore文件上传两种方式 NetCore官方给出的两种文件上传方式分别为“缓冲”.“流式”.我简单的说说两种的区别, 1.缓冲:通过模型绑定先把整个文件保存到内存,然后我们通过IFormFile ...

  9. yii2.0 文件上传

    Yii 2.0 出来好长时间了,一直都是看下官方网站,没实践过,今天弄了下图片上传操作. 1创建一个简单的数据表 mysql> desc article; +---------+-------- ...

随机推荐

  1. layui更新表格单元格数据口,更新单元格的内容

    //监听工具条 table.on('tool(edit)', function(obj){ var data = obj.data; if(obj.event === 'getinvitation') ...

  2. try、finally代码块有无return时的执行顺序

    结论: 1.不管有没有出现异常,finally块中代码都会执行:2.当try和catch中有return时,finally仍然会执行:3.finally是在return后面的表达式运算后执行的(此时并 ...

  3. Spring Cloud(八):分布式配置中心服务化和高可用

    在前两篇的介绍中,客户端都是直接调用配置中心的server端来获取配置文件信息.这样就存在了一个问题,客户端和服务端的耦合性太高,如果server端要做集群,客户端只能通过原始的方式来路由,serve ...

  4. putty自带工具plink自动登陆ssh

    PLINK.EXE -C -N -D 127.0.0.1:7000 root@111.111.111.111  -pw 123456 解释成中文: PLINK.EXE -启用数据压缩 -不要shell ...

  5. java运算符优先级和结合性

    运算符 结合性 [ ] . ( ) (方法调用) 从左向右 ! ~ ++ -- +(一元运算) -(一元运算) 从右向左 * / % 从左向右 + - 从左向右 << >> & ...

  6. Atitit.软件gui按钮and面板---通讯子系统(区)-- github 的使用....

    Atitit.软件gui按钮and面板---通讯子系统(区)-- github 的使用.... 1. 1.注册账户以及创建仓库 1 2. 二.在GitHub中创建项目(create a new rep ...

  7. keepalived virtual_router_id 44

    在同一局或网内如果有多个keepalived 的话 virtuall_router_id 44 (不能相同,但同一对,是一定相同)

  8. 微服务实战-使用API Gateway

    当你决定将应用作为一组微服务时,需要决定应用客户端如何与微服务交互.在单体式程序中,通常只有一组冗余的或者负载均衡的服务提供点.在微服务架构中,每一个微服务暴露一组细粒度的服务提供点.在本篇文章中,我 ...

  9. jsp页面和js代码中使用sessionScope获取session值

    场景:有些实体对象可以放到HttpSession对象中,保正在一个会话期间可以随时获取这个对象的属性,例如可以将登录用户的信息写入session,以保证页面随时可以获取并显示这个用户的状态信息.下面以 ...

  10. CSS学习笔记(6)--浮动,三列布局,高度宽度自适应

    百度ife任务三,要求中间宽度自适应,高度取三列最高者. 开始用position的relative和absolute,但是relative不能自适应宽,absolute不能加float浮动,撑不起来外 ...