Java doGet, doPost方法和文件上傳實例代碼
更新時間:2016年11月02日 09:26:50 投稿:lqh
這篇文章主要介紹了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(); } //可以從輸入流中讀取數(shù)據(jù) // 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的請求參數(shù)</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")); //參數(shù)列表: 待轉碼的字符串, 字符編碼 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>
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
您可能感興趣的文章:
- Java commons-httpclient如果實現(xiàn)get及post請求
- JAVA發(fā)送http get/post請求,調用http接口、方法詳解
- java web學習_淺談request對象中get和post的差異
- java模擬http的Get/Post請求,并設置ip與port代理的方法
- Java如何實現(xiàn)URL帶請求參數(shù)(get/post)及得到get和post請求url和參數(shù)列表的方法
- java中form以post、get方式提交數(shù)據(jù)中文亂碼問題總結
- java發(fā)送get請求和post請求示例
- java使用httpclient模擬post請求和get請求示例
- Java httpcomponents發(fā)送get post請求代碼實例
相關文章
Spring中BeanFactory與FactoryBean接口的區(qū)別詳解
這篇文章主要給大家介紹了關于Spring中BeanFactory與FactoryBean接口的區(qū)別的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用Spring具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-03-03spring cloud feign不支持@RequestBody+ RequestMethod.GET報錯的解決方法
這篇文章主要介紹了spring cloud feign不支持@RequestBody+ RequestMethod.GET報錯的解決方法,需要的朋友可以參考下2018-01-01java導出數(shù)據(jù)庫中Excel表格數(shù)據(jù)的方法
這篇文章主要為大家詳細介紹了java導出數(shù)據(jù)庫中Excel表格數(shù)據(jù)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08