首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jetty: Servlet不能转发到JSP

问Jetty: Servlet不能转发到JSP
EN

Stack Overflow用户
提问于 2013-12-03 13:15:36
回答 1查看 5.3K关注 0票数 1

我有以下问题:我试图将请求从servlet转发到jsp页面,但我得到了404。当我直接访问/site/home.jsp.jsp时,它会加载jsp。

代码语言:javascript
复制
    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);

。

代码语言:javascript
复制
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    req.getRequestDispatcher("/sites/home.jsp").forward(req, resp);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-03 20:39:42

这个问题经常出现,所以我创建了一个使用启用JSP的嵌入式Jetty的示例项目。

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包含创建/配置/启动嵌入式服务器的部分。

特别注意:

  • JspServlet必须命名为"jsp“-参见jspServletHolder()
  • 需要为JSP初始化器设置org.eclipse.jetty.containerInitializers。
  • 需要添加ServletContainerInitializersStarter bean
  • 需要添加InstanceManager引用
  • 需要创建适当的javax.servlet.context.tempdir
  • 将org.apache.jasper.compiler.disablejsr199设置为false以使用标准的JavaC编译器
  • 上下文的类加载器不能是系统类加载器。-见getUrlClassLoader()
  • 必须将DefaultServlet命名为“默认”-请参见defaultServletHolder()

src/main/java/com/acme/DateServlet.java是如何从Servlet转发到JSP的一个示例。

DateServlet是 in Main.java

因此,一旦按下http://localhost:8080/date/,请求就会命中servlet,而servlet又会转发给/test/tag2.jsp

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20352232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档