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