Так не работает. HTML-код должен быть внутри JSP, а не внутри сервлета. Повторяю: текст шаблона (HTML / CSS / JS) принадлежит JSP, а код Java принадлежит классам Java (для начала с сервлетом).
Все, что нужно сделать сервлету, - это выполнить бизнес-задачу и поместить интересующие данные в подходящую область (область запроса?) И, наконец, переслать запрос на страницу JSP, а затем использовать метки в JSP для управления потоком страниц. и использовать EL для доступа к внутренним данным.
например. следующее в doGet()
:
List<Person> persons = personDAO.list();
request.setAttribute("persons", persons); // This way it's accessible in JSP by ${persons}
request.getRequestDispatcher("/WEB-INF/persons.jsp").forward(request, response);
со следующим в persons.jsp
:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<table>
<c:forEach items="${persons}" var="person">
<tr>
<td>${person.name}</td>
<td>${person.email}</td>
<td>${person.age}</td>
</tr>
</c:forEach>
</table>
c:forEach
является частью JSTL . Если он недоступен в вашей среде, вы можете установить его, просто поместив jstl-1.2.jar
в папку /WEB-INF/lib
(при условии, что вы используете контейнер Servlet 2.5).