java
package com.inca.webservice.crm.httpservlet;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Category;
import com.inca.webservice.crm.httpservlet.imp.AQueryHisDoctorImpl;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
*
* @author 于德晓
*
*/
public class AQueryHisDoctorServlet extends HttpServlet {
private static final long serialVersionUID = -2130549407160182348L;
Category logger = Category.getInstance(AQueryHisDoctorServlet.class);
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/javascript;charset=utf-8");
PrintWriter pw = resp.getWriter();
BufferedReader br =new BufferedReader(new InputStreamReader(req.getInputStream(),"UTF-8"));
String line = null;
StringBuffer sb = new StringBuffer();
while((line =br.readLine()) != null){
sb.append(line);
}
String reqbody = sb.toString();
String result = "";
try {
AQueryHisDoctorImpl service = new AQueryHisDoctorImpl();
result = service.doBusi(reqbody);
pw.write(result.toString());
} catch (Exception e) {
pw.write(format("-ERROR:" + e.getMessage(), null));
logger.error(e.getMessage());
}
}
public static String format(String str, JSONArray data) {
JSONObject respResult = new JSONObject();
if (str.startsWith("-ERROR:")) {
respResult.put("Result", false);
} else {
respResult.put("Result", true);
}
respResult.put("ResultMessage", str);
if (data == null || data.size() == 0) {
respResult.put("Data", new JSONArray());
} else {
respResult.put("Data", data);
}
return respResult.toString();
}
}
通过输入流获取请求报文的时候,没有指定字符集(UTF-8),所以乱码了。

