Servlet_path和Page_info的区别
来源:互联网 发布:三菱plc编程代码 编辑:程序博客网 时间:2024/05/17 16:13
<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
[Servlet 规范中描述]
映射请求到Servlet
接收到一个请求后,WEB容器要确定转到哪一个WEB应用程序。被选择的应用程序的最长的上下文路径必须和请求的URL开始部分匹配。URL匹配的部分是映射到Servlet的上下文路径。
WEB容器下一步必须按照下面的程序定位处理请求的Servlet。
用来映射到Servlet的路径是请求对象的URL减去上下文的路径。下面的URL路径映射规则按顺序执行,容器选择第一个成功的匹配并且不在进行下一个匹配:
Ø 容器试着对请求的路径和Servlet的路径进行精确匹配,如果匹配成功则选择这个Servlet。
Ø 容器会循环的去试着匹配最长的路径前缀:把’/’当作路径分隔符,按照路径树逐级递减的完成,选择最长匹配的Servlet。
Ø 如果这个URL路径的最后有扩展名(比如.jsp),Servlet容器会试着匹配处理这个扩展名的Servlet。
Ø 如果前面的没有与前面三条规则相匹配的Servlet,容器会试着为资源请求提供适当的资源,如果有“默认”的Servlet定义给这个应用程序,那么这个Servlet会被使用。
容器必须使用一个大小写敏感的匹配方式。
在部署描述符中,用下面的语法定义映射:
Ø 一个以’/’开始并且以’/*’结束的字符串用来映射路径。
Ø 一个以’*.’为前缀的字符串用来映射扩展名。
Ø 一个只包含’/’的字符串指示着这个应用程序“默认”的Servlet,在这种情况下,servlet的路径是请求的URI减去上下文路径,并且这个路径是null。
Ø 所有其他的字符只用来精确匹配。
如果容器内置JSP容器,那么.jsp被映射到这个容器,并允许JSP页面在需要的时候被执行。这种映射叫做隐含映射。如果WEB应用程序中定义了.jsp的映射,那么这个映射有比隐含映射高的优先级。
WEB容器允许显式的声明隐含映射以获得优先级,例如,*.shtml的隐含映射可以在服务器上被映射为包含功能。
- Servlet_path和Page_info的区别
- 和和的区别
- & 和 &&、|和||的区别:
- &和&&、|和||的区别
- &&和&,||和|的区别
- &和&&、|和||的区别
- &和&&、|和||的区别
- ../和./和/的区别
- &和&&,|和||的区别
- "&"和"&&"、"|"和"||"的区别
- &和&& |和||的区别
- &和&&的区别 |和||的区别
- &&和&的区别,||和|的区别
- &和&&的区别以及|和||的区别
- &&和&的区别? | | 和|的区别?
- &和&&的区别,|和||的区别
- &和&&的区别及!和~区别
- '&'和'*' (C++)的区别
- C# 文件的输入与输出
- Android Studio设置颜色字体样式
- uva 12169 扩展欧几里德解不定方程
- Swift基础(五)字典
- 趣味100道C语言程序题num two
- Servlet_path和Page_info的区别
- 【3006】统计数字
- hdu 1009 FatMouse' Trade
- CoordinatorLayout自定义Behavior的运用
- Android实现从相册选择或者直接拍照来设置圆形的头像CircleImageView
- 也算是快速幂了
- POJ 1061 青蛙约会
- 【Python学习笔记】错误、调试和测试
- popupwindow中显示gridview