Context Path + servlet path + path info = request uri
来源:互联网 发布:建站abc登录 编辑:程序博客网 时间:2024/06/07 01:31
|-- Context Path --|-- Servlet Path -|--Path Info--|http://www.myserver.com /mywebapp /helloServlet /hello |-------- Request URI ----------------------------|
Remember the following three points:
1. Request URI = context path + servlet path + path info.
2. Context paths and servlet paths start with a / but do not end with it.
3. HttpServletRequest provides three methods getContextPath(),
getServletPath() and getPathInfo() to retrieve the context path,
the servlet path, and the path info, respectively, associated with a request.
Identifying the servlet path
To match a request URI with a servlet, the servlet container follows a simple algorithm.
Once it identifies the context path, if any, it evaluates the remaining part of the
request URI with the servlet mappings specified in the deployment descriptor, in the
following order. If it finds a match at any step, it does not take the next step.
1 The container tries to match the request URI to a servlet mapping. If it finds a
match, the complete request URI (except the context path) is the servlet path. In
this case, the path info is null.
2 It tries to recursively match the longest path by stepping down the request URI
path tree a directory at a time, using the / character as a path separator, and determining
if there is a match with a servlet. If there is a match, the matching part
of the request URI is the servlet path and the remaining part is the path info.
3 If the last node of the request URI contains an extension (.jsp, for example),
the servlet container tries to match it to a servlet that handles requests for the
specified extension. In this case, the complete request URI is the servlet path
and the path info is null.
4 If the container is still unable to find a match, it will forward the request to the
default servlet. If there is no default servlet, it will send an error message indicating
the servlet was not found.
<servlet-mapping>
<servlet-name>RedServlet</servlet-name>
<url-pattern>/red/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RedServlet</servlet-name>
<url-pattern>/red/red/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RedBlueServlet</servlet-name>
<url-pattern>/red/blue/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BlueServlet</servlet-name>
<url-pattern>/blue/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>GreenServlet</servlet-name>
<url-pattern>/green</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ColorServlet</servlet-name>
<url-pattern>*.col</url-pattern>
</servlet-mapping>
Request URI Servlet Used Servlet Path Path Info
/colorapp/red RedServlet /red null
/colorapp/red/ RedServlet /red /
/colorapp/red/aaa RedServlet /red /aaa
/colorapp/red/blue/aa RedBlueServlet /red/blue /aa
/colorapp/red/red/aaa RedServlet /red/red /aaa
/colorapp/aa.col ColorServlet /aa.col null
/colorapp/hello/aa.col ColorServlet /hello/aa.col null
/colorapp/red/aa.col RedServlet /red /aa.col
/colorapp/blue NONE(Error message)
/colorapp/hello/blue/ NONE(Error message)
/colorapp/blue/mydir NONE(Error message)
/colorapp/blue/dir/aa.col ColorServlet /blue/dir/aa.col null
/colorapp/green GreenServlet /green null
这里的三个错误,都是错在blue上,注意blue的mapping url是/blue/而不是/blue或者/blue/*这是造成错误的主要原因
- Context Path + servlet path + path info = request uri
- Context Path + servlet path + path info = request uri
- Context Path + servlet path + path info = request uri
- Request URI = context path + servlet path + path info
- Context Path + servlet path + path info = request uri
- Context Path + servlet path + path info = request uri
- Servlet.service() for servlet [spring] in context with path [] threw exception [Request processing f
- 严重: Servlet.service() for servlet [spring] in context with path [/XX] threw exception [Request
- Servlet.service() for servlet [springmvc] in context with path [] threw exception [Request processin
- servlet path
- servlet [jsp] in context with path [解决办法
- path
- path
- path
- path
- path:
- path
- “path”,
- 气象数据集说明文档(SURF_CLI_CHN_MUL_DAY)
- 环形旋转图2
- js为什么运行完后会出现undefined
- 家庭物体识别调研
- excel读取
- Context Path + servlet path + path info = request uri
- oracle怎样创建表空间和用户
- php微信公众开发平台如何使用session
- java八大排序算法实现
- Android应用打破65K方法数限制:Conversion to Dalvik format failed: Unable to execute dex
- CGContextTranslateCTM
- Windows-查找字符串
- Android的Touch Mode
- JAVA从入门到精通读书笔记 第四章