一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java doGet, doPost方法和文件上傳實例代碼

Java doGet, doPost方法和文件上傳實例代碼

2020-06-29 11:28java技術網 JAVA教程

這篇文章主要介紹了Java doGet, doPost方法和文件上傳實例代碼的相關資料,需要的朋友可以參考下

Java doGet, doPost方法和文件上傳

index.html

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<!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>
        密&nbsp&nbsp碼:
      </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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="UTF-8"?>
     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>

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩一区二区三区免费 | 美女的让男人桶爽网站 | 羞羞私人影院可以直接免费观影吗 | 美女一线天 | 啾咪成人漫画免费 | 国产亚洲高清国产拍精品 | 青青青国产精品国产精品美女 | 欧美综合一区二区三区 | 丝瓜黄瓜茄子西红柿秋葵榴莲 | 99视频精品全部免费观看 | 毛片一区二区三区提莫影院 | 免费yjsp妖精com | 欧美三级一区二区 | 全是女性放屁角色的手游 | 亚洲乱码尤物193yw在线播放 | 91香蕉视频在线 | 日韩欧美在线观看综合网另类 | 日本哺乳期网站xxxx | 亚洲欧美国产精品久久久 | 亚洲国产精久久久久久久 | 日韩国产成人 | 韩国最新三级网站在线播放 | 亚洲成年人专区 | 特黄aa级毛片免费视频播放 | 99超级碰碰成人香蕉网 | 午夜爽喷水无码成人18禁三级 | 欧美18-19sex性处视频 | 日韩视频在线精品视频免费观看 | 国产综合亚洲专区在线 | 国产中文在线视频 | 91香蕉官网| 国产色综合久久五月色婷婷中文 | 美女伊人网 | 日本道三区播放区 | 欧美一二区视频 | 国产夜趣福利第一视频 | 91最新高端约会系列178 | 男人操女人动图 | 国产精品嫩草影院在线看 | 欧美国产日本高清不卡 | 天美传媒果冻传媒星空传媒 |