Java 如何在Jetty中的/*上映射servlet过滤器?

Java 如何在Jetty中的/*上映射servlet过滤器?,java,servlets,jetty,servlet-filters,web.xml,Java,Servlets,Jetty,Servlet Filters,Web.xml,我想在Jetty中映射到一个servlet过滤器。我已经使用url模式设置了一个servlet过滤器映射/*。但是,不调用过滤器。我还尝试了/映射。它也不起作用。这是如何造成的,我如何解决它?提到wep应用程序可以打包为root.war以具有根上下文/提到wep应用程序可以打包为root.war以具有根上下文//code>如果您将war命名为root.war,它将部署到根/上下文 如果将war命名为root.war,它将部署到root/context jetty中的每个应用程序都部署到其上下文中

我想在Jetty中映射到一个servlet过滤器。我已经使用url模式设置了一个servlet过滤器映射
/*
。但是,不调用过滤器。我还尝试了
/
映射。它也不起作用。这是如何造成的,我如何解决它?

提到wep应用程序可以打包为
root.war
以具有根上下文
/
提到wep应用程序可以打包为
root.war
以具有根上下文
//code>如果您将war命名为
root.war
,它将部署到根/上下文


如果将war命名为root.war,它将部署到root/context


jetty中的每个应用程序都部署到其上下文中,这意味着它在斜杠后面有一些部分,也就是说,您的servlet映射实现到最后一个斜杠,而不是在上下文之前


如其他答案中所述,您必须将应用程序部署为root.war以克服这一问题。

jetty中的每个应用程序都部署到其上下文中,这意味着它在斜杠后面有一些部分-即,您的servlet映射是到最后一个斜杠的-而不是上下文之前的一个


如其他答案中所述,您必须将应用程序部署为root.war以克服此问题。

可选地,您可以在
$JETTY\u HOME/webapps
下创建一个名为
$JETTY\u HOME/webapps/root
的目录,也可以创建一个名为
root
$JETTY_HOME/webapps
下,将您的web应用内容复制到
$JETTY_HOME/webapps/root
中,您可以将请求从“/”重定向到“/urlToRedirect”,并通过特殊的servlet处理“/urlToRedirect”。例如:

public static void main(String[] args) throws Exception {
    Servlet frontend = new Frontend();

    Server server = new Server(8080);
    ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
    context.addServlet(new ServletHolder(frontend), "/index");
    context.addServlet(new ServletHolder(frontend), "/auth");

    ResourceHandler resource_handler = new ResourceHandler();
    resource_handler.setDirectoriesListed(false);
    resource_handler.setResourceBase("static");

    RewriteHandler rewriteHandler = new RewriteHandler();
    rewriteHandler.setRewriteRequestURI(true);
    rewriteHandler.setRewritePathInfo(true);
    rewriteHandler.setOriginalPathAttribute("requestedPath");
    RedirectRegexRule rule = new RedirectRegexRule();
    rule.setRegex("/");
    rule.setReplacement("/index");
    rewriteHandler.addRule(rule);

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

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

您可以将请求从“/”重定向到“/urlToRedirect”,并通过特殊的servlet处理“/urlToRedirect”。例如:

public static void main(String[] args) throws Exception {
    Servlet frontend = new Frontend();

    Server server = new Server(8080);
    ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
    context.addServlet(new ServletHolder(frontend), "/index");
    context.addServlet(new ServletHolder(frontend), "/auth");

    ResourceHandler resource_handler = new ResourceHandler();
    resource_handler.setDirectoriesListed(false);
    resource_handler.setResourceBase("static");

    RewriteHandler rewriteHandler = new RewriteHandler();
    rewriteHandler.setRewriteRequestURI(true);
    rewriteHandler.setRewritePathInfo(true);
    rewriteHandler.setOriginalPathAttribute("requestedPath");
    RedirectRegexRule rule = new RedirectRegexRule();
    rule.setRegex("/");
    rule.setReplacement("/index");
    rewriteHandler.addRule(rule);

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

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

它是tomcat服务器吗?您可以尝试将应用捆绑为root.war并部署它。它是tomcat服务器吗?你可以尝试将你的应用捆绑为root.war并部署它。2件事,首先,我使用jetty,因为它是eclipse的GWT-GAE插件中的默认服务器,所以我不知道如何做到这一点。第二,我不认为GAE使用码头,所以我怎么能为GAE解决这个问题。考虑问另一个问题,这样其他人可以帮助你使用GWT和GAE特定的项目。这个问题是一般性的,根据我们所知,在给出了详细信息后得到了最好的回答。2件事,首先,我使用jetty,因为它是eclipse的GWT-GAE插件中的默认服务器,所以我不知道如何做到这一点。第二,我不认为GAE使用码头,所以我怎么能为GAE解决这个问题。考虑问另一个问题,这样其他人可以帮助你使用GWT和GAE特定的项目。这个问题是一般性的,根据我们所知,在给出细节的情况下得到了回答。