正则表达式派遣到各种码头处理程序

时间:2013-07-01 20:43:36

标签: java servlets jetty embedded-jetty

是否可以使用上下文处理程序但是还有一个句柄不能捕获通常为404的所有文件?我正在创建一个ContextHandlers的HandlerList,它将一个url映射到一个处理程序,但是所有未捕获的东西似乎都转到了最后一个处理程序,它代表了主页,并且在它的斜杠之后不应该有任何东西。我想要localhost的请求,没有任何东西在路径上去那个处理程序而不是http://example.com/some_file_that_does_not_exist_and_should_return_a_404.jpg之类的请求,这些请求当前转到Home处理程序。

    HandlerList handlers = new HandlerList();
    handlers.setHandlers(new Handler[] {
            Utils.createContextHandler(resourceHandler, "/static"),
            Utils.createContextHandler(new Step1(), "/step1"),
            Utils.createContextHandler(new Step2(), "/step2"),
            Utils.createContextHandler(new Home(), "/") // <-- all 404s are going here
    });
    server.setHandler(handlers);

有没有办法用正则表达式设置它?例如,如果我正在做类似tinyurl的事情,我想要一个动态哈希标记或某种类型的数字发送到特定处理程序?如果存在五位数,我可以发送检查,发送给处理程序A,如果它是六位数发送给处理程序B吗?或者我应该创建自己的使用正则表达式的处理程序列表?或者我应该把逻辑放入我的Home处理程序来捕获奇怪的文件?

我习惯了像django这样的url调度配置。

https://docs.djangoproject.com/en/dev/topics/http/urls/

0 个答案:

没有答案