Java 使用嵌入式Jetty服务器的REST资源

Java 使用嵌入式Jetty服务器的REST资源,java,rest,path,jetty,Java,Rest,Path,Jetty,我正在使用嵌入式Jetty服务器为REST服务创建POC 我想创建以下资源 /foo/{id} /foo/{id}/bar 我要求每个调用不同的类,每个类都访问路径中的id 我有以下代码 Server server = new Server(7777); ServletHandler handler = new ServletHandler(); server.setHandler(handler); handler.addSe

我正在使用嵌入式Jetty服务器为REST服务创建POC

我想创建以下资源

/foo/{id}
/foo/{id}/bar
我要求每个调用不同的类,每个类都访问路径中的id

我有以下代码

        Server server = new Server(7777);
        ServletHandler handler = new ServletHandler();
        server.setHandler(handler);

        handler.addServletWithMapping(DefaultServlet.class, "/*");
        handler.addServletWithMapping(Foo.class, "/foo/*");
        handler.addServletWithMapping(Bar.class, "/foo/*/bar");
不幸的是,这两个请求都会导致Foo.class


Jetty是否允许我实现这一点?我可以设置一个更智能的路径吗?

我认为这是不可能的。看起来jetty跟在后面,那么星号可以在路径的开头,也可以在路径的末尾

以下是规范中的引用:

  • 以“*”前缀开头的字符串用作扩展映射
  • 路径映射使用以“/”字符开头,以“/*”后缀结尾的字符串
有关更多详细信息,请参阅“12.2映射规范”


所以你应该在你的Foo类中分析
request.getPathInfo()
,或者使用一些框架来为你做这件事,f.x.或者

只需将Foo委托给Bar-in代码即可。是的,我想到了,但想要一个更优雅的解决方案。谢谢你的建议