規範性接口開發中,通常數據是以json或者xml的格式傳送的,而不是字符串的形式直接返回給接口調用者;下面介紹這兩種格式的編寫方法。java
下面兩種數據傳送方式是接口輸出端的編寫。需引入的包以下:json
<span style="font-family:KaiTi_GB2312;font-size:18px;">importjava.io.PrintWriter; importjava.io.StringWriter; importjavax.servlet.http.HttpServletResponse; importorg.dom4j.Document; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter;</span>
1.傳送 XML 協議的格式數據app
<span style="font-family:KaiTi_GB2312;font-size:18px;"> /** * xml 格式數據 * * @param response * @param doc */ publicstaticvoidoutDocToXML(HttpServletResponse response, Document doc) { // 如下代碼請注意編碼順序 response.setCharacterEncoding("utf-8"); response.setContentType("text/xml;charset=utf-8"); response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); PrintWriter out = null; StringWriter writer = new StringWriter(); OutputFormat format = OutputFormat.createPrettyPrint(); // format.setEncoding("UTF-8"); XMLWriter xmlwriter = new XMLWriter(writer,format); try { out = response.getWriter(); xmlwriter.write(doc); } catch (Exception e) { e.printStackTrace(); } out.print(writer.toString()); out.close(); }</span>
2.傳送 json 協議的格式數據dom
<span style="font-family:KaiTi_GB2312;font-size:18px;">/** * json 數據格式 * * @param response * @param data * @param type */ protectedvoidsendData(HttpServletResponse response, Object data) { if (data != null) { response.setCharacterEncoding("utf-8"); response.setContentType("application/json;charset=UTF-8"); response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); PrintWriter out = null; try { out = response.getWriter(); out.print(data); out.close(); } catch (Exception e) { e.printStackTrace(); } } }</span>