Я использую встроенный сервер Jetty с поддержкой JSP и JSTL, но это не имеет значения.Сервлет с jsp не работает
Это то, что я пытаюсь сделать:
- Я хочу, чтобы получить доступ к странице HTTP: локальный: 8080/администратор/index.jsp
- Когда доступ к этой странице сервлет «StatisticsServlet» необходимо создать и отправьте карту на index.jsp
- index.jsp должен прокрутить карту и отобразить ключи и значения.
Это то, что я до сих пор:
StatisticsServlet.java
public class StatisticsServlet extends HttpServlet {
SingletonStatsContainer stats = SingletonStatsContainer.getInstance();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Map<String, Integer> requestListLenghts = stats.getItemsInUnprocessedRedisList();
req.setAttribute("stats", requestListLenghts);
RequestDispatcher reqDispatcher = req.getRequestDispatcher("/index.jsp"); //Is this correct?
reqDispatcher.forward(req, resp);
}
}
Это то, что запускает сервер:
AdminWeb.java
public class AdminWeb implements Runnable {
private static final ContextHandlerCollection webContext = new ContextHandlerCollection();
private static final Logger logger = LoggerFactory.getLogger(AdminWeb.class);
@Override
public void run() {
logger.info("Starting Jetty server . . .");
WebAppContext webAppContext = new WebAppContext();
webAppContext.setDescriptor(webAppContext + "/WEB-INF/web.xml");
webAppContext.setResourceBase("src/com/company/web/");
webAppContext.setContextPath("/admin");
webAppContext.addServlet(StatisticsServlet.class, "/admin");
webContext.setHandlers(new Handler[]{webAppContext});
JettyServer server = new JettyServer();
server.setHandler(webContext);
try {
server.start();
logger.info("Server started! Admin page now accessible @ http://localhost:{}/admin", server.getRunningPort());
} catch (Exception ex) {
logger.error("Server not started : {}", ex.getMessage());
}
}
}
И сам index.jsp:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page import="com.company.web.StatisticsServlet"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<c:forEach items="${stats}" var="entry">
${entry.key}", ${entry.value}
</c:forEach>
</body>
</html>
Любая помощь приветствуется! ПРИМЕЧАНИЕ. Я не использую конфигурацию web.xml. Если возможно, добавьте пример web.xml в соответствии с этим сценарием.
Спасибо!