Генерируйте ответ HTML в сервлете Java

Как я генерирую ответ HTML в сервлете Java?

48
задан BalusC 11 February 2017 в 05:33
поделиться

2 ответа

Вам нужен метод doGet как:

public void doGet(HttpServletRequest request,
        HttpServletResponse response)
throws IOException, ServletException
{
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    out.println("<html>");
    out.println("<head>");
    out.println("<title>Hola</title>");
    out.println("</head>");
    out.println("<body bgcolor=\"white\">");
    out.println("</body>");
    out.println("</html>");
}

Вы можете увидеть this ссылку для простого сервлета hello world

34
ответ дан 7 November 2019 в 12:09
поделиться

Обычно вы передаете запрос в JSP для отображения. JSP - это технология представления, которая предоставляет шаблон для написания обычного HTML/CSS/JS и обеспечивает возможность взаимодействия с внутренним кодом/переменными Java с помощью taglibs и EL. Вы можете управлять потоком страницы с помощью таких теглибов, как JSTL. Вы можете установить любые данные бэкенда в качестве атрибута в любой области видимости запроса, сессии или приложения и использовать EL (вещи ${}) в JSP для доступа/отображения к ним.

Пример запуска:

@WebServlet("/hello")
public class HelloWorldServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String message = "Hello World";
        request.setAttribute("message", message); // This will be available as ${message}
        request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response);
    }

}

А /WEB-INF/hello.jsp выглядит так:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>SO question 2370960</title>
    </head>
    <body>
         <p>Message: ${message}</p>
    </body>
</html>

При открытии http://localhost:8080/contextpath/hello в браузере будет показано

Message: Hello World

вот это.

Это избавляет Java-код от нагромождения HTML и значительно улучшает сопровождаемость. Чтобы больше узнать и попрактиковаться в работе с сервлетами, перейдите по следующим ссылкам.

Просмотрите также вкладку "Частые" всех вопросов с тегом [servlets], чтобы найти часто задаваемые вопросы.

102
ответ дан 7 November 2019 в 12:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: