我可以使用Jetty的ResourceHandler响应POST请求吗?

时间:2011-08-12 21:25:11

标签: jetty

我可以使用Jetty的ResourceHandler来回复POST请求吗?如果是这样,怎么样?

对于上下文,这里是使用Jetty教程中的ResourceHandler的代码段configuring a file server

public class FileServer
{
    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(true);
        resource_handler.setWelcomeFiles(new String[]{ "index.html" });

        resource_handler.setResourceBase(".");

        HandlerList handlers = new HandlerList();
        handlers.setHandlers(new Handler[] { resource_handler, new DefaultHandler() });
        server.setHandler(handlers);

        server.start();
        server.join();
    }
}

1 个答案:

答案 0 :(得分:2)

ResourceHandler似乎只支持GET请求。这是有道理的,因为ResourceHandler仅提供静态资源(文件,目录)。无论如何,POST输入都会被丢弃。

我发现很难组成一个场景,需要ResourceHandler来回复POST请求,但是如果你真的想要实现这个,你可以编写自己的Handler来包装ResourceHandler并调用GET方法用于POST请求。有关如何执行此操作的一些提示,请访问:http://www.eclipse.org/jetty/documentation/current/writing-custom-handlers.html#passing-request-and-response