javaweb图片上传回显的jsp和servlet完整代码
时间: 2023-09-02 07:07:33 浏览: 123
jsp图片上传完整代码
3星 · 编辑精心推荐
以下是一个简单的 Java Web 图片上传回显的 JSP 和 Servlet 完整代码示例。
JSP 页面代码(upload.jsp):
```jsp
<!DOCTYPE html>
<html>
<head>
<title>图片上传回显</title>
</head>
<body>
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" value="上传">
</form>
<% if (request.getAttribute("imageUrl") != null) { %>
<img src="<%= request.getAttribute("imageUrl") %>">
<% } %>
</body>
</html>
```
Servlet 代码(UploadServlet.java):
```java
import java.io.File;
import java.io.IOException;
import java.util.UUID;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
@WebServlet("/upload")
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final String UPLOAD_DIR = "uploads";
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String applicationPath = request.getServletContext().getRealPath("");
String uploadFilePath = applicationPath + File.separator + UPLOAD_DIR;
File fileSaveDir = new File(uploadFilePath);
if (!fileSaveDir.exists()) {
fileSaveDir.mkdirs();
}
Part part = request.getPart("image");
String fileName = UUID.randomUUID().toString() + "_" + part.getSubmittedFileName();
String filePath = uploadFilePath + File.separator + fileName;
part.write(filePath);
String imageUrl = request.getContextPath() + "/" + UPLOAD_DIR + "/" + fileName;
request.setAttribute("imageUrl", imageUrl);
request.getRequestDispatcher("upload.jsp").forward(request, response);
}
}
```
注意事项:
- 在 JSP 中,当检查请求属性 "imageUrl" 是否存在时,请使用 `request.getAttribute("imageUrl") != null`。
- 在 Servlet 中,将上传的文件保存到服务器上的路径可以使用 `request.getServletContext().getRealPath("")` 获取当前应用程序的根目录。
- 在 Servlet 中,获取上传的文件的文件名可以使用 `part.getSubmittedFileName()` 方法。
- 在 Servlet 中,通过 `request.getContextPath()` 获取应用程序的上下文路径,例如 "/myapp"。
- 在 Servlet 中,使用 `request.getRequestDispatcher("upload.jsp").forward(request, response)` 转发回 JSP 页面,并在 JSP 页面中显示上传的图片。
阅读全文