分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

Servlet3.0文件上传

发布时间:2023-09-06 01:47责任编辑:彭小芳关键词:文件上传

使用文件上传需要引入Servlet jar和javaee jar,我这里使用的是Servlet3.1.0版和javaee7

<!--java ee--> ???????<dependency> ???????????<groupId>javaee</groupId> ???????????<artifactId>javaee-api</artifactId> ???????????<version>7</version> ???????</dependency> ???????<!-- Servlet3.0 --> ???????<dependency> ???????????<groupId>javax.servlet</groupId> ???????????<artifactId>javax.servlet-api</artifactId> ???????????<version>3.1.0</version> ???????????<scope>provided</scope> ???????</dependency>

  

客户端编程

        要上传文件,必须利用 multipart/form-data 设置HTML表单的enctype属性值,指在告诉服务器,向服务器发送二进制数据。

       这个表单中必须包含类型file的一个输入元素,它会被显示成一个按钮,单击它时,会打开一个对话框,供我们选择文件。

表单页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> ???<title>Servlet文件上传</title></head><body><form action="/servlet/FileServlet" method="post" enctype="multipart/form-data"> ???选择文件:<input type="file" name="file"/> ???<input type="submit"/></form></body></html>

  

服务器端

 MultipartConfig可以带有以下属性,这些全部是可选的:

        maxFileSize:表示最多可上传的文件容量。超过设定值的文件将会遭到拒绝。maxFileSize 的默认值为-1,表示不受限制。

        maxRequestSize:表示允许多部分http请求的最大容量。它的默认值为-1,表示它是不受限制的。

        location:将上传的文件保存到磁盘中的指定位置,调用Part 中的write 方法将用到它。

        fileSizeThreshold:设定一个溢出尺寸,超过这个值之后,上传的文件将被写入磁盘。

    在一个由多部分组成的请求中,每一个表单域,包括非文本域,都会被转换成一个Part。

import javax.servlet.ServletException;import javax.servlet.annotation.MultipartConfig;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.Part;import java.io.IOException;/** * Created by Administrator on 2018/4/3. *//** * 引入java Servlet3.1.0版本 * 使用javaee7.0版本 *///设置上传路径@MultipartConfig(location = "D:\\ioTest\\")public class FileServlet extends HttpServlet { ???//使用Servlet3.0实现文件上传 ???protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????//设置编码格式 ???????response.setContentType("text/html;charset=UTF-8"); ???????request.setCharacterEncoding("UTF-8"); ???????//获取上传文件 ???????Part part=request.getPart("file"); ???????//上传文件 ?????????上传文件名称 ???????part.write(part.getSubmittedFileName()); ???} ???protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????doPost(request,response); ???}}

  

最后注意一点,如果出现以下错误,很有可能是你的tomcat自带的servletapi版本太低,建议最好不要直接更换lib下的jar文件,

因为很有可能会发生冲突,所以还是建议在网上重新下载一个高版本的tomcat,

Servlet3.0文件上传

原文地址:https://www.cnblogs.com/xuchangqi1/p/8707905.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved