欢迎使用CSDN-markdown编辑器
来源:互联网 发布:电脑玩手游用什么软件 编辑:程序博客网 时间:2024/04/28 13:15
web.xml中servlet-mapping的配置
本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:
元素在Servlet和URL样式之间定义一个映射。它包含了两个子元素和,元素给出的Servlet名字必须是 在元素中声明过的Servlet的名字。元素指定对应于Servlet的URL路 径,该路径是相对于Web应用程序上下文根的路径。例如:
<servlet-mapping><servlet-name>helloworld</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>
Servlet 2.5规范允许的子元素出现多次,之前的规范只允许一 个元素包含一个子元素。我们看下面的例子:
<servlet-mapping><servlet-name>welcome</servlet-name><url-pattern>/en/welcome</url-pattern><url-pattern>/zh/welcome</url-pattern></servlet-mapping>
在配置了Servlet与URL样式之间的映射后,当Servlet容器接收到一个请求,它首先确定该请求应该由哪一个Web应用程序来响应。这是 通过比较请求URI的开始部分与Web应用程序的上下文路径来确定的。映射到Servlet的路径是请求URI减去上下文的路径,Web应用程序的 Context对象在去掉请求URI的上下文路径后,将按照下面的路径映射规则的顺序对剩余部分的路径进行处理,并且在找到第一个成功的匹配后,不再进行 下一个匹配。
容器试着对请求的路径和Servlet映射的路径进行精确匹配,如果匹配成功,则调用这个Servlet来处理请求。
容器试着匹配最长的路径前缀,以斜杠(/)为路径分隔符,按照路径树逐级递减匹配,选择最长匹配的Servlet来处理请求。
如果请求的URL路径最后有扩展名,如.jsp,Servlet容器会试着匹配处理这个扩展名的Servlet。
扩展名的优先级要低于路径匹配。
如果按照前面3条规则没有找到匹配的Servlet,容器会调用Web应用程序默认的Servlet来对请求进行处理,如果没有定义默认的Servlet,容器将向客户端发送HTTP 404错误信息(请求资源不存在)。
在部署描述符中,可以使用下面的语法来定义映射。
以/开始并且以 /* 结束的字符串用来映射路径,例如:
<url-pattern>/admin/*</url-pattern>
如果没有精确匹配,那么对/admin/路径下的资源的所有请求将由映射了上述URL样式的Servlet来处理。
以 *. 为前缀的字符串用来映射扩展名,例如:
<url-pattern>*.do</url-pattern>
如果没有精确匹配和路径匹配,那么对具有.do扩展名的资源的请求将由映射了上述URL样式的Servlet来处理。
以一个单独的/指示这个Web应用程序默认的Servlet,例如:
<url-pattern>/</url-pattern>
如果对某个请求没有找到匹配的Servlet,那么将使用Web应用程序的默认Servlet来处理。
/一般只适用于Default Servlet,因为留给/的都是没有其他Servlet能匹配的。
所有其他的字符被用于精确匹配,例如:
<url-pattern>/login</url-pattern>
如果请求/login,那么将由映射了URL样式/login的Servlet来处理。
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- /sys/power创建
- WebService 安卓客户端调用和服务器端搭建
- 如何查看本地Git的html帮助文档
- 优先队列
- ios三方插件
- 欢迎使用CSDN-markdown编辑器
- Quartz2d中基本的图像处理
- Problem E: 建立链表(线性表)
- Android新手入门2016(11)--非阻塞对话框AlertDialog
- C++中istringstream、ostringstream、stringstream 的用法
- a1004. Counting Leaves (30)
- 阿里算法实习生面试回忆
- bzoj2321[BeiJing2011集训]星器
- 203. Remove Linked List Elements