映射规范 使用 URL 路径 安全 映射规范 在web应用部署描述符中,以下语法用于定义映射: 以‘/’字符开始、以‘/*’后缀结尾的字符串用于路径匹配。 以‘*.’开始的字符串用于扩展名映射。 空字符串“”是一个特殊的URL模式,其精确映射到应用的上下文根,即,http://host:port//请求形式。在这种情况下,路径信息是‘/’且servlet路径和上下文路径是空字符串(“”)。 只包含“/”字符的字符串表示应用的“default”servlet。在这种情况下,servlet路径是请求URL减去上下文路径且路径信息是null。 所有其他字符串仅用于精确匹配。 如果一个有效的 web.xml(在从 fragment 和注解合并了信息后)中有任意一个url-pattern,其映射到多个 servlet,那么部署将失败。 隐式映射 如果容器有一个内部的JSP容器,.jsp扩展名映射到它,允许执行JSP页面的要求。该映射被称为隐式映射。如果Web应用定义了一个.jsp映射,它的优先级高于隐式映射。 Servlet 容器允许进行其他的隐式映射,只要显示映射的优先。例如,一个 *.shtml 隐式映射可以映射到包含在服务器上的功能。 示例映射集合 请看下面的一组映射: TABLE 12-1 Example Set of Maps 路径模式 Servlet /foo/bar/* servlet1 /baz/* servlet2 /catalog servlet3 *.bop servlet4 将产生以下行为: TABLE 12-2 Incoming Paths Applied to Example Maps 访问的路径 Servlet 处理请求 /foo/bar/index.html servlet1 /foo/bar/index.bop servlet1 /baz servlet2 /baz/index.html servlet2 /catalog servlet3 /catalog/index.html “default” servlet /catalog/racecar.bop servlet4 /index.bop servlet4 请注意,在 /catalog/index.html 和 /catalog/racecar.bop 的情况下,不使用映射到“/catalog”的 servlet,因为不是精确匹配的。 使用 URL 路径 安全