在(嵌入式)Jetty 中,我试图使用 ResourceHandler 来提供静态文件和自定义处理程序来响应动态请求。基于此页面,我有一个如下所示的设置:
public static void main(String[] args) throws Exception
{
Server server = new Server();
SelectChannelConnector connector = new SelectChannelConnector();
connector.setPort(8080);
server.addConnector(connector);
ResourceHandler resource_handler = new ResourceHandler();
resource_handler.setDirectoriesListed(false);
resource_handler.setResourceBase(".");
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { resource_handler, new MyHandler() });
server.setHandler(handlers);
server.start();
server.join();
}
这在正确的意义上是有效的:
- 从我的公共目录中的文件中提供静态内容,例如 /public/style.css
- 在公共目录中不存在的路径上运行 MyHandler,例如 /foo/bar
问题是我得到一个 403 响应根路径 (/)。MyHandler 能够响应这些请求,但它们首先被 ResourceHandler 拦截。有什么方法可以强制 Jetty 向 MyHandler 发送/请求?
提前致谢!