Ответ 1
Вы либо печатаете из HTML из самого сервлета (устарели)
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>My HTML Body</h1>");
out.println("</body></html>");
или отправить в существующий ресурс (сервлет, jsp и т.д.) (называемый пересылкой в представление) (предпочтительно)
RequestDispatcher view = request.getRequestDispatcher("html/mypage.html");
view.forward(request, response);
Существующий ресурс, в котором вам нужен ваш текущий HTTP-запрос для пересылки, не обязательно должен быть особенным, т.е. он написан как любой другой сервлет или JSP; контейнер легко перемещает направляющую часть.
Просто убедитесь, что вы указали правильный путь к ресурсу. Например, для сервлета RequestDispatcher
потребуется правильный шаблон URL (как указано в вашем web.xml)
RequestDispatcher view = request.getRequestDispatcher("/url/pattern/of/servlet");
Также обратите внимание, что a RequestDispatcher
может быть извлечен как из ServletRequest
, так и ServletContext
с той разницей, что первый может принимать относительный путь .
Ссылка:
http://docs.oracle.com/javaee/5/api/javax/servlet/RequestDispatcher.html
Пример кода
public class BlotServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
// we do not set content type, headers, cookies etc.
// resp.setContentType("text/html"); // while redirecting as
// it would most likely result in an IllegalStateException
// "/" is relative to the context root (your web-app name)
RequestDispatcher view = req.getRequestDispatcher("/path/to/file.html");
// don't add your web-app name to the path
view.forward(req, resp);
}
}