我正在尝试将一些文本从服务器端发送回客户端。我尝试过response.setStatus、response.setHeader,但它们都不起作用。我需要一些帮助
这是我的客户:
public static void main(String[] args) throws MalformedURLException, IOException {
URL url = new URL("http://localhost:8080/WebServiceDesignStyles3ProjectServer/NewServlet/www");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Accept", "text/xml");
con.setDoOutput(true);
con.setDoInput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeUTF("aaa");
wr.flush();
wr.close();
InputStream is = con.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
StringBuffer response = new StringBuffer();
while ((line = rd.readLine()) != null) {
response.append(line);
response.append('\r');
}
rd.close();
System.out.println(response);
System.out.println(con.getResponseCode());
System.out.println(con.getResponseMessage());
}
}
这是我来自服务器的 doGET 方法:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//processRequest(request, response);
response.setStatus(404);
response.setContentType("text/xml");
PrintWriter writer=response.getWriter();
writer.append("this is 404");
writer.flush();
}
但是我的客户端仍然打印出 200 和 OK,这是默认的。我怎样才能将一些消息发送回客户端。
编辑:
已解决,我不应该有 doGet 的请求正文。
谢谢。
最佳答案
Actually doPost is invoked.
那可能没有线条
response.setStatus(404);
response.setContentType("text/xml");
PrintWriter writer=response.getWriter();
writer.append("this is 404");
确保使用 doGet()
或在 doPost()
中实现上述内容。
关于Java servlet 发送回响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29044501/