2017-07-17 68 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已經話說:如預期的要求工作。