如何通過(guò)ServletInputStream讀取http請(qǐng)求傳入的數(shù)據(jù)
通過(guò)ServletInputStream讀取http請(qǐng)求傳入的數(shù)據(jù)
問(wèn)題提出:使用nodejs的http向java web發(fā)送請(qǐng)求,java后臺(tái)未收到數(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. 通過(guò)ServletInputStream獲取的是String類型
使用時(shí)需要轉(zhuǎn)化成JSON
JSONObject jsonObj = JSONObject.fromObject(strcont);
System.out.println(jsonObj.getString("module"));
需要的jar包:

ServletInputStream類
ServletInputStream類提供流從請(qǐng)求對(duì)象讀取二進(jìn)制數(shù)據(jù)
如圖像等。這是一個(gè)抽象類。
ServletRequest接口的getInputStream()方法返回ServletInputStream類的實(shí)例。
所以可以得到:
ServletInputStream sin=request.getInputStream();
Java
- ServletInputStream類的方法
- ServletInputStream類中只定義了一種方法
int readLine(byte[] b, int off, int len) - 它讀取輸入流。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis-plus與Mybatis依賴沖突問(wèn)題解決方法
,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧這篇文章主要介紹了Mybatis-plus與Mybatis依賴沖突問(wèn)題解決方法2021-04-04
超簡(jiǎn)單的java獲取鼠標(biāo)點(diǎn)擊位置坐標(biāo)的實(shí)例(鼠標(biāo)在Jframe上的坐標(biāo))
在Java窗體Jframe上獲取鼠標(biāo)點(diǎn)擊的坐標(biāo),其中使用了匿名內(nèi)部類,實(shí)例代碼非常簡(jiǎn)單易懂,大家可以學(xué)習(xí)一下2018-03-03
關(guān)于BigDecimal類型數(shù)據(jù)的絕對(duì)值和相除求百分比
這篇文章主要介紹了關(guān)于BigDecimal類型數(shù)據(jù)的絕對(duì)值和相除求百分比,Java在java.math包中提供的API類BigDecimal,用來(lái)對(duì)超過(guò)16位有效位的數(shù)進(jìn)行精確的運(yùn)算,需要的朋友可以參考下2023-07-07
Java判斷2個(gè)List集合是否相等(不考慮元素的順序)
今天小編就為大家分享一篇關(guān)于Java判斷2個(gè)List集合是否相等(不考慮元素的順序)的文章,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10
Java面試必考之如何在項(xiàng)目中優(yōu)雅的拋出異常
這篇文章主要為大家詳細(xì)介紹了Java中的幾種異常關(guān)鍵字和異常類相關(guān)知識(shí),本文比較適合剛?cè)肟覬ava的小白以及準(zhǔn)備秋招的大佬閱讀,需要的可以收藏一下2023-06-06
用Java集合中的Collections.sort方法如何對(duì)list排序(兩種方法)
本文通過(guò)兩種方法給大家介紹java集合中的Collections.sort方法對(duì)list排序,第一種方式是list中的對(duì)象實(shí)現(xiàn)Comparable接口,第二種方法是根據(jù)Collections.sort重載方法實(shí)現(xiàn),對(duì)collections.sort方法感興趣的朋友一起學(xué)習(xí)吧2015-10-10

