Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在没有上下文路径(Jetty)的情况下运行servelt_Java_Servlets - Fatal编程技术网

Java 如何在没有上下文路径(Jetty)的情况下运行servelt

Java 如何在没有上下文路径(Jetty)的情况下运行servelt,java,servlets,Java,Servlets,我的Servlet映射如下所示: myservlet /* 因此,我的Servlet响应请求,例如http://bla.com/myservlet/bla/bla/bla 如何使其响应http://bla.com/bla/bla/bla并删除路径的myservlet部分 此外,我想剥离Jetty附带的hello world servlet的默认欢迎文件 谢谢 注: 我知道如何使用mod_rewrite/Apache实现这一点——我正在寻找一种不同的解决方案 您可以添加多个url模式以映射到同

我的Servlet映射如下所示:


myservlet
/*
因此,我的Servlet响应请求,例如
http://bla.com/myservlet/bla/bla/bla

如何使其响应
http://bla.com/bla/bla/bla
并删除路径的
myservlet
部分

此外,我想剥离Jetty附带的hello world servlet的默认欢迎文件

谢谢

注:

  • 我知道如何使用
    mod_rewrite
    /Apache实现这一点——我正在寻找一种不同的解决方案

  • 您可以添加多个url模式以映射到同一个servlet

    <servlet-mapping>
      <servlet-name>myservlet</servlet-name>
      <url-pattern>/bla</url-pattern>
    </servlet-mapping>
    
    <servlet-mapping>
      <servlet-name>myservlet</servlet-name>
      <url-pattern>/bla/bla</url-pattern>
    </servlet-mapping>
    
    
    myservlet
    /布拉
    myservlet
    /布拉/布拉
    
    您可以添加多个url模式以映射到同一个servlet

    <servlet-mapping>
      <servlet-name>myservlet</servlet-name>
      <url-pattern>/bla</url-pattern>
    </servlet-mapping>
    
    <servlet-mapping>
      <servlet-name>myservlet</servlet-name>
      <url-pattern>/bla/bla</url-pattern>
    </servlet-mapping>
    
    
    myservlet
    /布拉
    myservlet
    /布拉/布拉
    
    如果您使用的是Jetty安装。有两种方法可以做到这一点

  • 您可以将war文件重命名为
    root.war
    ,使其上下文根为
    /
  • 为您的webapp创建context.xml

    
    /
    /webapps/blawh.war
    
    context.xml位于
    $JETTY\u HOME/contexts
    下。正如您所看到的,这个目录已经有test.war的context.xml。通过查看test.xml,您可以大致了解webapp的context.xml应该是什么样子。
    创建完自己的后,继续删除
    contexts/test.xml
    contexts/test.d
    webapps/test.war
    。(只是为了清理测试材料)。这也回答了你的第二个问题

  • 如果您使用的是maven,只需执行以下操作:

    org.mortbay.jetty

    如果您使用的是Jetty安装。有两种方法可以做到这一点

  • 您可以将war文件重命名为
    root.war
    ,使其上下文根为
    /
  • 为您的webapp创建context.xml

    
    /
    /webapps/blawh.war
    
    context.xml位于
    $JETTY\u HOME/contexts
    下。正如您所看到的,这个目录已经有test.war的context.xml。通过查看test.xml,您可以大致了解webapp的context.xml应该是什么样子。
    创建完自己的后,继续删除
    contexts/test.xml
    contexts/test.d
    webapps/test.war
    。(只是为了清理测试材料)。这也回答了你的第二个问题

  • 如果您使用的是maven,只需执行以下操作:

    org.mortbay.jetty

    OP实际上想去掉
    myservlet
    URL的一部分。应用程序的上下文根。您的解决方案似乎不会改变根上下文。而且
    bla
    在这里不需要按字面意思理解,我想他只是想匹配
    *
    。OP实际上想去掉
    myservlet
    URL的一部分。应用程序的上下文根。您的解决方案似乎不会改变根上下文。我想,这里不需要照字面理解
    bla
    。我想他只是想匹配
    *