2017-07-17 103 views
0

我已经部署在Tomcat的8 web应用程序这是我有问题的servlet:确定从HTTP响应头丢失

@WebServlet(name = "Start", urlPatterns = {"/start"}) 
public class StartServlet extends HttpServlet { 

    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     String requestBodyStr = request.getReader().lines().collect(Collectors.joining(System.lineSeparator())); 
     StartRequest startRequest = JsonUtil.parseStartRequest(requestBodyStr); 

     if (startRequest == null) { 
      response.sendError(HttpServletResponse.SC_BAD_REQUEST); 
      return; 
     } 

     response.setStatus(HttpServletResponse.SC_OK); 

     String responseBody = getResponseBody(); 

     try (PrintWriter out = response.getWriter()) { 
      out.print(responseBody); 
     } 
    } 
} 

如果我做出这个servlet的请求,则响应没有正常工作状态消息,它只是:

HTTP/1.1 200 

如何给响应添加OK?

+5

200是一个好的回应。你应该注意到返回代码值,而不是期望一些文本。但是,如果需要,则需要将其添加到响应流中。 – jr593

+0

您无法更改标准响应代码 – sForSujit

回答

1

当你做response.setStatus(HttpServletResponse.SC_OK);时,它和做response.setStatus(200);(字面上,如果你检查它,SC_OK只是一个值为200的常量)是一样的。 200是http中的OK的代码。如果你想OK手动,必须添加:

responserBody += " OK"; 
try (PrintWriter out = response.getWriter()) { 
    out.print(responseBody); 
} 

,但不应该是有用的,因为200已经话说:如预期的要求工作。