如何通過ServletInputStream讀取http請求傳入的數(shù)據(jù)
通過ServletInputStream讀取http請求傳入的數(shù)據(jù)
問題提出:使用nodejs的http向java web發(fā)送請求,java后臺未收到數(shù)據(jù)。
1. 使用ServletInputStream獲取傳入的數(shù)據(jù)
/**
* 增加數(shù)據(jù)
* @param module
* @param function
* @param system
* @param platform
* @param time
* @param status
* @return ModelAndView
* @throws IOException
*/
@RequestMapping("/insertOne")
public ModelAndView insertOne(HttpServletRequest req) throws IOException {
ServletInputStream ris = req.getInputStream();
StringBuilder content = new StringBuilder();
byte[] b = new byte[1024];
int lens = -1;
while ((lens = ris.read(b)) > 0) {
content.append(new String(b, 0, lens));
}
String strcont = content.toString();// 內(nèi)容
JSONObject jsonObj = JSONObject.fromObject(strcont);
DBObject obj = new BasicDBObject();
obj.put("module", jsonObj.getString("module"));
obj.put("function", jsonObj.getString("function"));
obj.put("system", jsonObj.getString("system"));
obj.put("platform", jsonObj.getString("platform"));
obj.put("time", jsonObj.getString("time"));
obj.put("status", jsonObj.getString("status"));
Map<String, Object> map = new HashMap<String, Object>();
int len = ((DBManager) conn).insertOne(obj);
map.put("status", (len == 0)?("SUCCESS"):("ERROR"));
return MVC.toString(map);
}
2. 通過ServletInputStream獲取的是String類型
使用時需要轉(zhuǎn)化成JSON
JSONObject jsonObj = JSONObject.fromObject(strcont);
System.out.println(jsonObj.getString("module"));
需要的jar包:

ServletInputStream類
ServletInputStream類提供流從請求對象讀取二進制數(shù)據(jù)
如圖像等。這是一個抽象類。
ServletRequest接口的getInputStream()方法返回ServletInputStream類的實例。
所以可以得到:
ServletInputStream sin=request.getInputStream();
Java
- ServletInputStream類的方法
- ServletInputStream類中只定義了一種方法
int readLine(byte[] b, int off, int len) - 它讀取輸入流。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis-plus與Mybatis依賴沖突問題解決方法
,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧這篇文章主要介紹了Mybatis-plus與Mybatis依賴沖突問題解決方法2021-04-04
超簡單的java獲取鼠標點擊位置坐標的實例(鼠標在Jframe上的坐標)
在Java窗體Jframe上獲取鼠標點擊的坐標,其中使用了匿名內(nèi)部類,實例代碼非常簡單易懂,大家可以學習一下2018-03-03
關(guān)于BigDecimal類型數(shù)據(jù)的絕對值和相除求百分比
這篇文章主要介紹了關(guān)于BigDecimal類型數(shù)據(jù)的絕對值和相除求百分比,Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數(shù)進行精確的運算,需要的朋友可以參考下2023-07-07
用Java集合中的Collections.sort方法如何對list排序(兩種方法)
本文通過兩種方法給大家介紹java集合中的Collections.sort方法對list排序,第一種方式是list中的對象實現(xiàn)Comparable接口,第二種方法是根據(jù)Collections.sort重載方法實現(xiàn),對collections.sort方法感興趣的朋友一起學習吧2015-10-10

