Возвращается из doGet () или doPost () автоматически отправляет ответ

madmax спросил: 28 марта 2018 в 03:39 в: servlets

Я огляделся и ранее задал этот вопрос, но не получил полного ответа. Когда вы explicity возвращаетесь из doGet () или doPost (), ответ отправляется независимо от того, что вы что-то закодировали или нет. Если да, то какой код по умолчанию? Достаточно ли просто response.setStatus() и вернуться? Если нет: так что я всегда вручную отсылаю ответ? Каков способ по умолчанию просто отвечать не с помощью переадресации или перенаправления?


1 ответ

Есть решение
Lucas Noetzold ответил: 28 марта 2018 в 02:56

Если вы ничего не сделаете, просто вернетесь (или даже не вернетесь) из сервлета, он вернет пустой код с кодом состояния 200 (ОК). Протестировал его на серверах tomcat и glassfish, используя приведенный ниже сервлет:

@WebServlet("/a")
public class a extends HttpServlet {    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        return;
    }    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        return;
    }}

Используя инструмент сетевого профилирования Chrome, вы можете увидеть, что я сказал: