[英]Jetty: Servlet can't forward to JSP
我有以下問題:我正在嘗試將請求從servlet轉發到jsp頁面,但我得到了404.當我直接訪問/sites/home.jsp時,它會加載jsp。
WebAppContext sites = new WebAppContext("src/com/example/blub/server/sites", "/sites");
ServletContextHandler weblet = new ServletContextHandler(ServletContextHandler.SESSIONS);
weblet.setContextPath("/");
weblet.addServlet(new ServletHolder(new Weblet()), "/home");
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] {sites, weblet});
server.setHandler(handlers);
。
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("/sites/home.jsp").forward(req, resp);
}
這個問題經常出現,所以我創建了一個使用嵌入式Jetty並啟用了JSP的示例項目。
https://github.com/jetty-project/embedded-jetty-jsp/
將此項目加載到您喜歡的IDE中。
運行org.eclipse.jetty.demo.Main
類,然后使用瀏覽器打開http://localhost:8080/
快速游覽
src/main/java/org/eclipse/jetty/demo/Main.java
包含創建/配置/啟動嵌入式服務器的部分。
特別注意:
jspServletHolder()
org.eclipse.jetty.containerInitializers
ServletContainerInitializersStarter
bean InstanceManager
參考 javax.servlet.context.tempdir
org.apache.jasper.compiler.disablejsr199
設置為false
以使用標准JavaC編譯器 getUrlClassLoader()
defaultServletHolder()
src/main/java/com/acme/DateServlet.java
是如何從Servlet轉發到JSP的示例。
DateServlet 映射到Main.java中的/date/
路徑規范
所以一旦你點擊http://localhost:8080/date/
,請求就會命中servlet,而servlet又會轉發到/test/tag2.jsp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.