Сервлет выдает пустую страницу, когда она должна перенаправляться

#java #servlets

#java #сервлеты

Вопрос:

У меня проблема с моим сервлетом («maakservlet»), maakservlet должен автоматически перенаправляться на welkom.jsp, но вместо этого он просто выдает мне пустую страницу.

Я пробовал requestdispatches, response.sendRedirect и т.д.

Вот мой код из сервлета:

 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    int code = 1;
    String voornaam = request.getParameter("voornaam");
    String achternaam = request.getParameter("achternaam");
    String eerstebezoek = request.getParameter("eerstebezoek");
    String meerderebezoeken = request.getParameter("meerderebezoeken");
    String attractie = request.getParameter("attractie");
    String naamattractie = request.getParameter("naamAttractie");
    String naampretpark = request.getParameter("naampretpark");

    Bezoeker bezoeker = new Bezoeker(voornaam, achternaam);

    if (attractie == "geen") {
        ;
    } else {
        bezoeker.voegToeAanWishlist(attractie);
    }

    if (eerstebezoek == null amp;amp; meerderebezoeken == null) {
        bezoeker.setPretparkcode(1000);
    } else if (meerderebezoeken != null) {
        bezoeker.setPretparkcode(code);
        code  = 1;
    }

    String destination = "welkom.jsp";
    RequestDispatcher requestDispatcher = request.getRequestDispatcher(destination);
}

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);

}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);
    String welkom = "welkom.jsp";

    response.sendRedirect("welkom.jsp");

    RequestDispatcher rd = request.getRequestDispatcher("welkom.jsp");
    rd.forward(request, response);
}
  

Комментарии:

1. Что «не сработало», когда вы использовали response.sendRedirect() ?

Ответ №1:

Чтобы перенаправить запрос на совершенно другую страницу, вы должны использовать свой response :

 response.sendRedirect(destination);
  

Смотрите: https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/HttpServletResponse.html#sendRedirect(java.lang.Строка)

Комментарии:

1. Спасибо за комментарий, куда бы вы поместили эту строку? У меня уже есть эта строка в моем разделе dopost(). Но я все еще застреваю в пустом maarkservlet.

2.В вашем doPost() методе, который вы используете, sendRedirect() и RequestDispatcher . Оба не будут работать вместе. Вы либо перенаправляете пользователя на совершенно новую страницу, либо перенаправляете рендеринг на другой ресурс (например, JSP, другой сервлет) и т.д. Итак, первое, что вы должны сделать, это удалить последние две строки вашего doPost() метода.