Servlet 3.0的另一个新特性就是提供了处理文件上传的功能,使用Servlet 3.0的内容实现文件上传需要以下几个内容:
- 在处理文件上传的Servlet上增加@MultipartConfig注解,表示当前Servlet符合MIME类型的multipart/form-data。
Optional Element Summary
int |
fileSizeThreshold |
java.lang.String |
location |
long |
maxFileSize |
long |
maxRequestSize |
- Part接口,表示允许接收MIME类型是multipart/form-data类型的POST请求。
Method Summary
void |
delete() |
java.lang.String |
getContentType() |
java.lang.String |
getHeader(java.lang.String name) |
java.util.Collection<java.lang.String> |
getHeaderNames() |
java.util.Collection<java.lang.String> |
getHeaders(java.lang.String name) |
java.io.InputStream |
getInputStream() |
java.lang.String |
getName() |
long |
getSize() |
void |
write(java.lang.String fileName) |
利用Servlet 3.0实现文件上传的功能,具体实现代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
<form action="uploadFile" method="post" enctype="multipart/form-data">
文件描述:<input type="text" name="filetext"><br>
<input type="file" name="upload"><br>
<input type="submit" value="上传">
</form>
</body>
</html>
@WebServlet(urlPatterns="/uploadFile")
@MultipartConfig(
fileSizeThreshold = 10 * 1024,
location = "/temp",
maxFileSize = 5 * 1024,
maxRequestSize = 10 * 1024
)
public class UploadFileServlet extends HttpServlet {
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String filetext = req.getParameter("filetext");
Part part = req.getPart("upload");
String cd = part.getHeader("Content-Disposition");
int index = cd.indexOf("filename=\"") + 10;
String filename = cd.substring(index, cd.length() - 1);
String path = getServletContext().getRealPath("/upload");
part.write(path + "/" + filename);
}
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
}
转载说明:请注明作者及原文链接,谢谢!
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
来自官方 servlet 3.0版本源码,全代码 核心类,annotation、descriptor、http、jsp、resources各包全代码
Servlet 2.5 API HTML Servlet API Documentation
一、Servlet实现文件上传,需要添加第三方提供的jar包 下载地址: 1) commons-fileupload-1.2.2-bin.zip: 点击打开链接 2) commons-io-2.3-bin.zip: 点击打开链接 接着把这两个jar包放到 lib文件夹下: 二:...
servlet-src 源码 Servlet 源文件
JAVA SERVLET 高级编程(处理多媒体信息,Java Server Page 技术,servlet与applet 通讯,Servlet 间通讯)
servlet运行原理图,可以通过此图清楚看到servlet的运行过程
jsp+servlet 图片上传包括所有数据库和包,已注册的形式来上传图片
Serlvet_fileupload文件上传功能,导入直接使用
解决Serlvet的找不到@Webservlet的问题
NULL 博文链接:https://ljzcome.iteye.com/blog/402157
赠送Maven依赖信息文件:javax.servlet-api-4.0.0.pom; 包含翻译后的API文档:javax.servlet-api-4.0.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:javax.servlet:javax.servlet-api:4.0.0; 标签:javax、...
上传文件的代码,架包,说明,还有一个例子,拿来直接就能使用,仅限于初学者。
Servlet API文档,chm格式 Servlet API文档,chm格式 Servlet API文档,chm格式
基于spring+serlvet+CXF+servlet异步实现等融合成的开发框架,可以实现多线程和异步并发操作,采用servlet3.0自带的异步实现方式,jdk1.6版本,javaee1.6
SERVLET
swaagger整合servlet,基于maven,打出war包,直接放到tomcat8的webapp下即可运行
现在先上传服务端代码。 开发环境: WIN7(TW) + ECLIPSE LUNA4.4.2 + MSSQL 2008R2 + JDK1.7.0.55 + TOMCAT8.0.24 SERVLET3.1 + MSSQL 2008 例子. 生成JSON结构数据。 可以这样传入参数(sql=“select top 2 * ...
纯Servlet做的局域网聊天系统,做的不是很好,希望大家帮忙修改一下。
使用 commons-fileupload 上传组件 结合file 实现 springmvc 方式文件上传 和serlvet方式上传 使用response输出流实现文件下载
spring 与 servlet整合