Java RequestDispatcher 在 Jetty Embedded app 中返回 null



>我有以下代码

//response.sendRedirect("Cmmdc");
RequestDispatcher requestDispatcher=request.getRequestDispatcher("Cmmdc");
System.out.println(requestDispatcher);--- **NULL**
requestDispatcher.forward(request,response);

我的主要:

Server server = new Server(8080);
ServletHandler handler = new ServletHandler();
server.setHandler(handler);
handler.addServletWithMapping(Start.class, "/Start");
handler.addServletWithMapping(Cmmdc.class, "/Cmmdc");
handler.addServletWithMapping(OptiuneServlet.class, "/OptiuneServlet");
handler.addServletWithMapping(Prim.class, "/Prim");
handler.addServletWithMapping(ValidatorCMMDC.class, "/ValidatorCMMDC");
handler.addServletWithMapping(ValidatorPrim.class, "/ValidatorPrim");
System.out.println("Start server jetty embedded");
server.start();
server.join();

我的问题是我应该如何调用 cmmdc servlet 以返回引用而不是空?

RequestDispatcher需要一个ServletContext(没有办法解决这个问题)。

您的设置没有。

不要像那样直接使用ServletHandler,而是使用ServletContextHandler

Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/");
server.setHandler(context);
context.addServlet(Start.class, "/Start");
// etc ...
server.start();
server.join();

最新更新