Java doGet, doPost 方法和文件上传实例代码
这里有新鲜出炉的 Java 设计模式, 程序狗速度看过来!
Java 程序设计语言
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
这篇文章主要介绍了 Java doGet, doPost 方法和文件上传实例代码的相关资料, 需要的朋友可以参考下
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("&", "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>
来源: http://www.phperz.com/article/18/0211/359535.html