java HttpServlet必须响应请求吗?
我有几个servlet在服务器端做一些事情。在一些情况下,我只是对一些不必要的数据进行编码并将其发回,这似乎毫无意义。你必须回应吗?当你说return
时会发生什么?我以前做过这件事,似乎没有什么问题,但我对servlet相对来说是新手。简单地返回到我头上有什么后果吗?当你回来的时候会发生什么
if(request.getParameter("name").equals("saveusedcards")) {
String sessId = request.getSession().getId();
//encode request with confirmation that cards were successfully updated
if(usersUpdatedCards.get(sessId).isEmpty()){
//no cards were seen
}
boolean success = DataDAO.updateCards(usersUpdatedCards.get(sessId));
if(success){
System.out.println("Data base update successfull!");
String responseMessage = new Gson().toJson("card successfully udpated");
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
System.out.println("updated cards response message: "+responseMessage);
response.getWriter().write(responseMessage);
return;
} else {
System.out.println("Data base update failed...");
String responseMessage = new Gson().toJson("card was not successfully updated");
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
System.out.println("updated cards response message: "+responseMessage);
response.getWriter().write(responseMessage);
return;
}
}
# 1 楼答案
servlet必须为客户机生成HTTP响应,但是在响应体中不返回任何内容是完全可以接受的。在执行此操作时,servlet应该通过发送204(无内容)的响应代码向客户机说明这一点。参考:https://httpstatuses.com/204
下面是一个如何从
doGet
方法设置响应代码的示例。您可以通过doPost
或service
方法执行同样的操作