JavaWeb 文件上傳、E-L表達式

一、文件上傳

1.1 file網站源碼:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>文件上傳</title>
</head>
<body>
<form action="upload"   method="post"  enctype="multipart/form-data">
   <input type="file" name="file"   >
   <input type="submit" value="上傳">
</form>
</body>
</html>

效果圖:
效果圖

1.2 UploadServlet源碼

package myweb;

import java.io.File;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
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")
@MultipartConfig
public class UploadServlet extends HttpServlet{
   @Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	// TODO Auto-generated method stub
	   Part part=request.getPart("file");
	   String fileName=part.getSubmittedFileName();
	   String uploadPath=request.getServletContext().getRealPath("/upload");
	   System.out.println(uploadPath+File.separator+fileName);
	   part.write(uploadPath);
	   response.setContentType("text/html;charset=UTF-8");
	   response.getWriter().print("上傳成功");
	//super.service(, arg1);
}
}

這裏需要注意的是:part.write(uploadPath);裏面寫入你保存的地址,並不是原路徑和映射路徑都寫入。

1.3 不足

  • 這裏的文件上傳只能上傳一個文件,如果第二次上傳,第一次上傳的文件會被覆蓋掉。
  • 上傳的文件的命名是源碼給的,即:upload,不能基於上傳的文件名命名。
  • 上傳的文件默認爲文件格式,打開時候只能自己選擇需要的格式,所以缺少轉碼過程

二、E-L表達式

不想寫了,很簡單,參考這裏:E L 表達式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章