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 > 密  码: </ 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" ?> 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 > |
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!