Java doGet, doPost方法和文件上傳實例代碼
更新時間:2016年11月02日 09:26:50 投稿:lqh
這篇文章主要介紹了Java doGet, doPost方法和文件上傳實例代碼的相關(guān)資料,需要的朋友可以參考下
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);//設(shè)置未保存在臨時路徑的最大值
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ù)列表: 待轉(zhuǎn)碼的字符串, 字符編碼
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請求,調(diào)用http接口、方法詳解
- java web學(xué)習_淺談request對象中g(shù)et和post的差異
- java模擬http的Get/Post請求,并設(shè)置ip與port代理的方法
- Java如何實現(xiàn)URL帶請求參數(shù)(get/post)及得到get和post請求url和參數(shù)列表的方法
- java中form以post、get方式提交數(shù)據(jù)中文亂碼問題總結(jié)
- java發(fā)送get請求和post請求示例
- java使用httpclient模擬post請求和get請求示例
- Java httpcomponents發(fā)送get post請求代碼實例
相關(guān)文章
Spring中BeanFactory與FactoryBean接口的區(qū)別詳解
這篇文章主要給大家介紹了關(guān)于Spring中BeanFactory與FactoryBean接口的區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者使用Spring具有一定的參考學(xué)習價值,需要的朋友們下面來一起學(xué)習學(xué)習吧2019-03-03
一文詳解Spring事務(wù)的實現(xiàn)與本質(zhì)
這篇文章主要介紹了Spring中事務(wù)的兩種實現(xiàn)方式:聲明式事務(wù)、編程式事務(wù)以及他們的本質(zhì)。文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習一下2023-04-04
spring cloud feign不支持@RequestBody+ RequestMethod.GET報錯的解決方法
這篇文章主要介紹了spring cloud feign不支持@RequestBody+ RequestMethod.GET報錯的解決方法,需要的朋友可以參考下2018-01-01
java導(dǎo)出數(shù)據(jù)庫中Excel表格數(shù)據(jù)的方法
這篇文章主要為大家詳細介紹了java導(dǎo)出數(shù)據(jù)庫中Excel表格數(shù)據(jù)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08

