请求路径元素 头 路径转换方法 请求路径元素 引导 servlet 服务请求的请求路径由许多重要部分组成。以下元素从请求URI路径得到,并通过请求对象公开: Context Path:与 ServletContext 相关联的路径前缀是这个servlet 的一部分。如果这个上下文是基于 Web 服务器的 URL 命名空间基础上的“默认”上下文,那么这个路径将是一个空字符串。否则,如果上下文不是基于服务器的命名空间,那么这个路径以 / 字符开始,但不以 / 字符结束。 Servlet Path:路径部分直接与激活请求的映射对应。这个路径以“/”字符开头,如果请求与“/ *”或“”模式匹配,在这种情况下,它是一个空字符串。 PathInfo:请求路径的一部分,不属于 Context Path 或 Servlet Path。如果没有额外的路径,它要么是null,要么是以'/'开头的字符串。 使用 HttpServletRequest 接口中的下面方法来访问这些信息: getContextPath getServletPath getPathInfo 重要的是要注意,除了请求 URI 和路径部分的 URL 编码差异外,下面的等式永远为真: requestURI = contextPath + servletPath + pathInfo 举几个例子来解析上述各点,请考虑以下几点: TABLE 3-1 Example Context Set Up Context Path /catalog Servlet Mapping Pattern: /lawn/* Servlet: LawnServlet Servlet Mapping Pattern: /garden/* Servlet: GardenServlet Servlet Mapping Pattern: *.jsp Servlet: JSPServlet 遵守下列行为: TABLE 3-2 Observed Path Element Behavior 请求路径 路径元素 /catalog/lawn/index.html ContextPath: /catalog ServletPath: /lawn PathInfo: /index.html /catalog/garden/implements/ ContextPath: /catalog ServletPath: /garden PathInfo: /implements/ /catalog/help/feedback.jsp ContextPath: /catalog ServletPath: /help/feedback.jsp PathInfo: null 头 路径转换方法