Struts是一個很舊的framework。不過在一些系統中,總會看到一些殘留的痕跡,硬是還在用這種framework。而新的技術仍在發展。一個例子就是web service。而當web service遇到Struts 1.3時,就很尷尬了。
目前的solution就是…自己parse。在這樣的solution下,基本上,不論那一個framework都可以使用這樣的解法。好吧,這完全跟struts沒有任何關係。這完全是標題殺手。換另一種標題就是:如何使用servlet解析json資料。不過以下要展示的重點,也不在json解析上,而是在如何處理httpRequest
傳來的資料。注意,是資料,不是參數。也就是說,當web service即使以xml來傳遞資訊時,稍稍變化也依然可以應用。正確的標題應該是:如何使用servlet接收message body資料。至於什麼是message body,請參閱HTTP規格書。
以下是解析message body(外加轉為json)的範例程式碼:
public ActionForward applyResult(ActionMapping mapping,
ActionForm form, HttpServletRequest req, HttpServletResponse res) {
try {
StringBuffer sb = new StringBuffer();
String line = null;
BufferedReader reader = req.getReader();
while ((line = reader.readLine()) != null) {
sb.append(line);
}
String sbStr = sb.toString();
logger.debug("JSONStr:" + sbStr);
JSONObject jsonObject = JSONObject.fromObject(sbStr);
YOURBEAN resp = (YOURBEAN) JSONObject.toBean(jsonObject, YOURBEAN.class);
logger.debug("JsonBean:"+resp);
return mapping.findForward("result");
} catch (Exception ex) {
}
參考: java - HttpServletRequest get JSON POST data - Stack Overflow
沒有留言 :
張貼留言