1

有没有办法使用上下文处理程序,但也有一个不能捕获所有通常是 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/

4

0 回答 0