Java servlet 发送回响应

Java servlet send send back response

我正在尝试将一些文本从服务器端发送回客户端。我试过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() 中实施上述内容。

当您将 doOutput 设置为 true 时,您还将请求方法设置为 POST:请参阅 Javadoc。所以你的 doGet() 方法没有被调用。

尝试将 GET 与请求的输出相结合是没有意义的。 GET 请求不能有请求主体。