Java doGet, doPost方法和文件上传实例代码

Java doGet, doPost方法和文件上传

index.html




  
  Title


用户名:
密  码:

TestServlet.Java

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.Enumeration;
import java.util.List;

/**
 * Project: Day15_Web
 * Created: Lulu
 * Date: 2016/8/16
 */
@WebServlet(name = "TestServlet")
public class TestServlet extends HttpServlet {
  private File root_upload;
  public TestServlet() {
    root_upload = new File("C:/temp");
    if (!root_upload.exists()) {
      root_upload.mkdirs();
    }
  }


  //两种链接方式 doPost doGet
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    response.setCharacterEncoding("UTF-8");
    request.setCharacterEncoding("UTF-8");
    ServletOutputStream os = response.getOutputStream();
    StringBuilder builder = new StringBuilder();

    builder.append("");
    builder.append("");
    builder.append("  ");
    builder.append("  测试Servlet");
    builder.append("");
    builder.append("");

    Enumeration names = request.getHeaderNames();
    while (names.hasMoreElements()) {
      String name = names.nextElement();
      builder.append(name)
          .append(":")
          .append(request.getHeader(name))
          .append("
"); } DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(10);//设置未保存在临时路径的最大值 factory.setRepository(new File("C:/temp/temp"));//超过上述最大值后保存的临时路径 ServletFileUpload upload = new ServletFileUpload(factory); try { List list = upload.parseRequest(request);//上传的文件列表 for (FileItem item : list) { builder.append(item.getFieldName()) .append(":") .append(item.isFormField() ? item.getString() : item.getName())//判断是不是属性, 如果是属性, 就 .append("
"); if (!item.isFormField()) { File file = new File(root_upload, item.getName()); builder.append(file.getAbsolutePath()).append("
"); item.write(file); } } } catch (FileUploadException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } //可以从输入流中读取数据 // ServletInputStream is = request.getInputStream(); // byte[] buffer = new byte[8192]; // int len ; // ByteArrayOutputStream bos= new ByteArrayOutputStream(); // while ((len = is.read(buffer)) != -1) { // bos.write(buffer, 0, len); // } // builder.append("InputStream: ") // .append(bos.toString("UTF-8")) // .append("
"); // builder.append("

Post的请求参数

").append("
"); // // Enumeration parameterNames = request.getParameterNames(); // while (parameterNames.hasMoreElements()) { // String name = parameterNames.nextElement(); // builder.append(name) // .append(":") // .append(request.getParameter(name)) // .append("
"); // } //接收来自浏览器的文件, os.write(builder.toString().getBytes("UTF-8")); //参数列表: 待转码的字符串, 字符编码 URLEncoder.encode("&", "UTF-8"); URLDecoder.decode("%26", "UTF-8"); builder.append(""); builder.append(""); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } }

web.xml



  
    TestServlet
    org.lulu.learn.TestServlet
  
  
    TestServlet
    /test
  


感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

你可能感兴趣的:(Java doGet, doPost方法和文件上传实例代码)