2015-08-25 7 views
-2

Я использую встроенный сервер 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 в соответствии с этим сценарием.

Спасибо!

ответ

Смежные вопросы