Java doGet, doPost方法和檔案上傳執行個體代碼_java

來源:互聯網
上載者:User

Java doGet, doPost方法和檔案上傳

index.html

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>Title</title></head><body><form action="/test" method="post" enctype="multipart/form-data">  <table >    <tr>      <td>        使用者名稱:      </td>      <td>        <input name="username" type="text">      </td>      <tr>      <td>        密  碼:      </td>      <td colspan="2">        <input name="password" type="password">      </td>    </tr>    <tr align="center">      <td><input name="login" type="submit" value="登陸"></td>      <td><input name="register" type="reset" value="重設"></td>    </tr>    <tr>      <td colspan="2">        <input type="radio" name="sex" value="male">男      </td> <td colspan="2">        <input type="radio" name="sex" value="female">女      </td>    </tr>    <tr>      <td colspan="2" >        <input name="upload" type="file">      </td>    </tr>  </table></form></body></html>

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("<html>");    builder.append("<head>");    builder.append("  <meta charset=\"utf-8\">");    builder.append("  <title>測試Servlet</title>");    builder.append("</head>");    builder.append("<body>");    Enumeration<String> names = request.getHeaderNames();    while (names.hasMoreElements()) {      String name = names.nextElement();      builder.append(name)          .append(":")          .append(request.getHeader(name))          .append("<br>");    }    DiskFileItemFactory factory = new DiskFileItemFactory();    factory.setSizeThreshold(10);//設定未儲存在臨時路徑的最大值    factory.setRepository(new File("C:/temp/temp"));//超過上述最大值後儲存的臨時路徑    ServletFileUpload upload = new ServletFileUpload(factory);    try {      List<FileItem> list = upload.parseRequest(request);//上傳的檔案清單      for (FileItem item : list) {        builder.append(item.getFieldName())            .append(":")            .append(item.isFormField() ? item.getString() : item.getName())//判斷是不是屬性, 如果是屬性, 就            .append("<br>");        if (!item.isFormField()) {          File file = new File(root_upload, item.getName());          builder.append(file.getAbsolutePath()).append("<br>");          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("<br>");//    builder.append("<h1>Post的請求參數</h1>").append("<br/>");////    Enumeration<String> parameterNames = request.getParameterNames();//    while (parameterNames.hasMoreElements()) {//      String name = parameterNames.nextElement();//      builder.append(name)//          .append(":")//          .append(request.getParameter(name))//          .append("<br/>");//    }    //接收來自瀏覽器的檔案,    os.write(builder.toString().getBytes("UTF-8"));    //參數列表: 待轉碼的字串, 字元編碼    URLEncoder.encode("&", "UTF-8");    URLDecoder.decode("%26", "UTF-8");    builder.append("</body>");    builder.append("</html>");  }  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    doPost(request, response);  }}

web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"     version="3.1">  <servlet>    <servlet-name>TestServlet</servlet-name>    <servlet-class>org.lulu.learn.TestServlet</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>TestServlet</servlet-name>    <url-pattern>/test</url-pattern>  </servlet-mapping></web-app>

感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.