【问题标题】:Remove Html Extension On Jetty删除 Jetty 上的 Html 扩展
【发布时间】:2016-08-05 13:23:00
【问题描述】:

我想去

https://localhost:8080/users/pages/profile(没有服务器失败)而不是https://localhost:8080/users/pages/profile.html

所以我尝试了

ServletContextHandler pagesContext = new ServletContextHandler();
pagesContext.setContextPath("/users/pages");
ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setResourceBase("./src/main/webapp/pages");
resourceHandler.setDirectoriesListed(true);
pagesContext.setHandler(resourceHandler);
pagesContext.addServlet(new ServletHolder("default", DefaultServlet.class), "*.html"); 
// TODO this is not working currently
jettyServer.addHandler(pagesContext);

但它不起作用! 它抱怨profile 页面不存在,但profile.html 工作正常

【问题讨论】:

  • Jetty(或任何 servlet Java Web 服务器)不支持。这种支持的任何实现都将是高度特定于 webapp 的,具有特定于该 webapp 的规则。查找要求要么需要一些复杂的缓存(为了性能),要么需要频繁的文件系统请求(简化​​实现,并以不平凡的方式降低性能)
  • @JoakimErdfelt,因为您是 Jetty 开发人员,您能告诉我如何将 http 请求路由到 https 吗?例如,如果用户转到http://domain.com,则快速将他重定向到https://domain.com
  • 使用SecureRedirectHandler - 提示:确保您的 HttpConfiguration 设置正确。

标签: java jetty embedded-jetty


【解决方案1】:

您可以通过 url 路由来实现。这是一个类似的问题,其中已经解释了如何做到这一点:Jetty '{servlet}/{parameter}' url routing

简而言之,您将只定义新的 servlet。 (不带或带参数)

【讨论】:

  • 我正在使用 Jersey,所以我可以进行 url 路由。但我怎么能用静态页面做到这一点?!
  • 从静态页面制作动态页面...不会有结果差异...
  • 所以你建议我做类似@Path("users/pages/profile") @Produces("text/html") public Response getProfilePage() { // ??? }
  • 但是我应该返回什么Response?我想在我的 webapp 文件夹中加载编写的 html 页面。我该怎么做?
  • 您可以将该 HTML 加载到其中。参见 Hello World 示例:wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty/顺便说一句,我很不高兴你没有给任何人赏金/
【解决方案2】:

从技术上讲,打包应用程序后将不再有src文件夹,在eclipse中通常会将所有源文件编译并移动到classes或build文件夹,因此将路径从./src/将 main/webapp/pages 改成正确的可能有助于解决您的问题。

【讨论】:

  • 目前。那不是我的问题!但我会解决这个问题
【解决方案3】:

Jetty 不会处理此类异常。它完全取决于 servlet 来处理这样的 url 映射。你为什么不看看 Spring web mvc,它会让事情变得更容易做你一直在问的事情。

这是一个很好的 place 开始 Documentation

【讨论】:

  • 我知道 Spring,但我根本无法在这个项目中使用它!我认为 Jetty 处理这样的 url 映射
猜你喜欢
  • 2011-05-27
  • 2015-03-20
  • 2022-03-04
  • 2014-02-10
  • 2012-02-24
  • 2018-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多