Как создать ответ HTML в сервлете Java?
Создание HTML-ответа в Java-сервлете
Ответ 1
Обычно вы отправляете запрос на JSP для отображения. JSP - это технология просмотра, которая предоставляет шаблон для написания простого ванильного HTML/CSS/JS внутри и обеспечивает возможность взаимодействия с базовым кодом Java/переменными с помощью taglib и EL. Вы можете контролировать поток страниц с помощью taglib, например JSTL. Вы можете установить любые данные в качестве атрибута в любой области запроса, сеанса или приложения и использовать EL (объекты ${}) в JSP для доступа/отображения их.
Пример Kickoff:
@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 и значительно улучшает ремонтопригодность. Чтобы учиться и практиковать больше с сервлетами, перейдите по ссылкам ниже.
- Вики-страница наших сервлетов
- Как работают сервлеты? Создание, сеансы, общие переменные и многопоточность
- doGet и doPost в сервлетах
- Вызов сервлета из JSP файла при загрузке страницы
- Как перенести данные из JSP в сервлет при отправке HTML-формы
- Показать JDBC ResultSet в HTML на странице JSP с использованием шаблонов MVC и DAO
- Как использовать сервлеты и Ajax?
- Возврат сервлета "HTTP-статус 404 Запрошенный ресурс (сервлет) недоступен"
Также найдите вкладку "Частые" всех вопросов, помеченных [сервлетами], чтобы найти часто задаваемые вопросы.
Ответ 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
