規範性接口開發中,一般數據是以json或者xml的格式傳送的,而不是字符串的形式直接返回給接口調用者;下面介紹這兩種格式的編寫方法。
下面兩種數據傳送方式是接口輸出端的編寫。需引入的包如下:
<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 協議的格式數據
<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 協議的格式數據
<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>
轉正請指明出處:blog.csdn.net/yangkai_hudong