分派器servlet弹簧和URL模式


问题内容

我是Spring框架的新手,今天我在web.xml文件中遇到了调度程序servlet配置,然后想到了一个有关url模式的问题,例如语法/。因此,如果我按如下所示在tomcat服务器中部署Web应用程序,“
/”符号实际上适用什么:host:port /或host:port / myWeb /


问题答案:

该模式/将使您的servlet成为该应用程序的默认servlet,这意味着它将选择没有另一个完全匹配的所有模式。

URL模式映射:

  • 以/字符开头并以/*后缀结尾的字符串用于路径映射。
  • *.前缀开头的字符串用作扩展名映射。
  • 仅包含/字符的字符串表示应用程序的 默认
    servlet。在这种情况下,Servlet路径是请求URI减去上下文路径,路径信息是null
  • 所有其他字符串仅用于完全匹配。

路径映射规则:

  1. 容器将尝试查找请求路径与Servlet路径的精确匹配。成功匹配将选择servlet。
    2.
    容器将递归地尝试匹配最长的路径前缀。这是通过使用/字符作为路径分隔符,一次将路径树下移到一个目录来完成的。最长的匹配确定所选的servlet。
    3.
    如果URL路径中的最后一段包含扩展名(例如.jsp),则servlet容器将尝试匹配处理该扩展名请求的servlet。扩展名定义为最后一个.字符之后的最后一段的一部分。
  2. 如果前三个规则均未导致servlet匹配,则容器将尝试提供适合于所请求资源的内容。如果为应用程序定义了 默认的
    servlet,则将使用它。