【发布时间】:2013-12-19 13:46:31
【问题描述】:
我有以下问题:我正在尝试将请求从 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);
}
【问题讨论】:
-
所以该页面的完整网址例如是localhost:8080/sites/home.jsp ?
-
是字符限制
-
不应该是/home.jsp吗?您的根目录是站点 siddirectory,因此您的路径将查找站点/站点/home.jsp。
-
查看 Jetty 的访问日志,我在这里是 @JBNizet,它会在日志中清晰显示。
-
我解决了,我必须将 Servlet 添加到 webappcontext 而不是为其创建另一个处理程序