Servlet3.0中,改進了部分API,簡化了Java Web的開發。
如,文件上傳。傳統的文件上傳需要借助於common-fileupload等工具,很復雜,借助Servlet3.0的API則極為簡單。
上傳頁面upload.jsp/upload.html
<form method="post" action="upload" enctype="multipart/form-data"> 選擇文件:<input type="file" id="file" name="file"><br> <input type="submit" value="提交"> </form>
處理上傳的Servlet
// Servlet3.0 相當於配置web.xml @WebServlet(name="Upload",urlPatterns={"/upload"}) // 文件上傳的注解 @MultipartConfig public class Upload extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 解決中文亂碼 response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); File path = new File("D://tmp"); if (!path.exists()){ path.mkdir(); } Part part = request.getPart("file"); out.println("size:"+part.getSize()+"<br>"); // tomcat7 下需要下面的方法獲取文件名 String cd = part.getHeader("Content-Disposition"); //截取不同類型的文件需要自行判斷 String filename = cd.substring(cd.lastIndexOf("=")+2, cd.length()-1); // Tomcat8以上只需要 part.getSubmittedFileName() 方法可以直接獲取 // 將文件上傳到服務器 String filePath = path.getPath() + File.separator + filename; part.write(filePath); System.out.println("File Upload : " + filePath); } }