JSP 文件上传实战指南
核心原理
Web 开发里文件上传很常见,JSP 作为服务端技术,底层依托的是 Servlet API。浏览器提交文件时,表单编码必须设为 multipart/form-data,这样数据才会被分块传输。服务器端利用 HttpServletRequest 接收请求,并通过 javax.servlet.http.Part 接口提取具体的文件流。
实战步骤
1. 构建前端表单
表单的 enctype 属性至关重要,默认值是 application/x-www-form-urlencoded,无法传输二进制文件。
<form action="upload.jsp" method="post" enctype="multipart/form-data">
选择文件:<input type="file" name="file" />
<input type="submit" value="上传" />
</form>
2. 编写后端处理逻辑
在 upload.jsp 中直接嵌入 Java 代码(Scriptlet)来处理请求。这里要注意先检查 Part 对象是否存在,避免空指针异常。
<%@ page import="java.io.*" %>
<%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%@ page import="javax.servlet.http.Part" %>
<%
String fileName = null;
Part filePart = request.getPart("file");
(filePart != ) {
fileName = filePart.getSubmittedFileName();
getServletContext().getRealPath() + + fileName;
filePart.write(savePath);
out.println();
} {
out.println();
}
%>

