Java Doget, DoPost 方法和文件上传
index.html
<! Doctype html> <html lang = "pt"> <head> <meta charset = "utf-8"> <title> title </title> </ad Head> <body> <formato action = "/teste" Method = "post" "Enctype =" multipart/form-data "> <tatle> <tr> <t> 用户名": " 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 = "Redefinir" value = "重置"> </td> </tr> <tr> <td colspan = "2"> <input type = "radio" name = "sex" value = "masculino"> 男 </td> <td colspan = "2"> <input type = "radio" = "sexo" <td) <input name = "upload" type = "file"> </td> </tr> </ table> </morm> </body> </html>
TestServlet.java
importar org.apache.commons.fileupload.fileitem; importar org.apache.commons.fileupload.fileuploadexception; importar org.apache.commons.fileupload.disk.diskfileItemFactory; importlet.erg.apachelet.fileUpload.diskfileImactory; importlet.erg.apachelet.fileuPload.DiskFileuMplos; javax.servlet.servletexception; importar javax.servlet.servletinputStream; importar javax.servlet.servletoutputStream; import javax.servlet.annotation.webServlet; import javax.servt.http.htttlettlet; javax.servlet.http.httpServletResponse; importar java.io.byteArrayOutputStream; importar java.io.file; importar java.io.ioException; importação java.net.urldecoder; import java.net.urlEncoder; importUt.et.ililililililililililililililililil; Day15_Web * Criado: LULU * Data: 2016/8/16 */@WebServlet (name = "testServlet") Classe pública TestServlet estende httpServlet {private arquivo root_upload; public testServlet () {root_upload = novo arquivo ("c:/temp"); if (! root_upload.exists ()) {root_upload.mkdirs (); }} // 两种链接方式 DoPost Doget Protected void DoPost (solicitação httpServletRequest, resposta httpServletResponse) lança servletexception, ioexception {Response.SetcharacterEncoding ("UTF-8"); request.setcharacterencoding ("UTF-8"); ServletOutputStream OS = Response.getOutputStream (); StringBuilder Builder = new StringBuilder (); construtor.append ("<html>"); construtor.append ("<head>"); construtor.append ("<meta charset =/" utf-8/">"); construtor.append ("<title> 测试 servlet </ititle>"); construtor.Append ("</head>"); construtor.append ("<body>"); Enumeração <string> nomes = request.getHeaderNames (); while (names.hasMoreElements ()) {string name = names.nextElement (); builder.append (nome) .append (":") .append (request.getheader (nome)) .append ("<br>"); } DiskFileItemFactory Factory = new DiskFileItemFactory (); Factory.SetSizETHreshold (10); // 设置未保存在临时路径的最大值 Factory.SetRepository (novo arquivo ("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 ()) {arquivo file = novo arquivo (root_upload, item.getName ()); builder.append (file.getabsolutepath ()). append ("<br>"); item.write (arquivo); }}} catch (fileUploadexception e) {e.printStackTrace (); } catch (Exceção e) {e.printStackTrace (); } // 可以从输入流中读取数据 // servletInputStream is = request.getInputStream (); // byte [] buffer = new Byte [8192]; // int len; // bytearrayoutputStream bos = new ByTearrayoutStream (); // while (len = is.read (tuffer)! } // builder.append ("inputStream:") // .append (bos.toString ("utf-8")) // .append ("<br>"); // builder.append ("<h1> post 的请求参数 </h1>"). (ParameterNames.hasMoreElements ()) {// string name = parameterNames.nextElement (); // builder.append (name) // .append (":") // .append (request.getParameter (nome)) // .append ("<br/>); //} // 接收来自浏览器的文件, OS.WRITE (Builder.ToString (). GetBytes ("UTF-8")); // 参数列表: 待转码的字符串, 字符编码 urlencoder.encode ("&", "utf-8"); Urldecoder.Decode ("%26", "UTF-8"); construtor.append ("</body>"); construtor.append ("</html>"); } Void protegido Doget (solicitação httpServletRequest, httpServletResponse Response) lança servletexception, ioexception {dopost (solicitação, resposta); }}web.xml
<? xml versão = "1.0" coding = "utf-8"?> <web-app xmlns = "http://xmlns.jcp.org/xml/ns/javaee" xmlns: xsi = "http:/wwwwwwww.w.w3.org/2001/1xmlns: xsi =" http:/wwwwwwwwwwwwww.w.w3.org/200: xsi ... xsi: schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_lelet> <Servlet-class-class> org.lulu.learn.testservlet </servlet-class> </servlet> <Servlet-Mapping> <Verlet-Name> testServlet </servlet-name> <url-pattern>/test </url-sattern> </irvlet-mapping> </battern>
感谢阅读 , 希望能帮助到大家 , 谢谢大家对本站的支持!