一个请求和多个servlet-mapping匹配,会去执行哪个servlet???

就是有多个servlet-mapping都能匹配到这个请求,会去执行哪个servlet???... 就是有多个servlet-mapping都能匹配到这个请求,会去执行哪个servlet??? 展开
 我来答
snsoft同学
2019-05-30
知道答主
回答量:1
采纳率:0%
帮助的人:741
展开全部

针对同一个匹配的url ,只会保留web.xml文件中定义的最后一个可匹配的

servlet-mapping处理

---tomcat的处理中的相关源码:StandardContext.java

/**
* Add a new servlet mapping, replacing any existing mapping for
* the specified pattern.
*
* @param pattern URL pattern to be mapped
* @param name Name of the corresponding servlet to execute
* @param jspWildCard true if name identifies the JspServlet
* and pattern contains a wildcard; false otherwise
*
* @exception IllegalArgumentException if the specified servlet name
*  is not known to this Context
*/
public void addServletMapping(String pattern, String name,
boolean jspWildCard) {
// Validate the proposed mapping
if (findChild(name) == null)
throw new IllegalArgumentException
(sm.getString("standardContext.servletMap.name", name));
pattern = adjustURLPattern(RequestUtil.URLDecode(pattern));
if (!validateURLPattern(pattern))
throw new IllegalArgumentException
(sm.getString("standardContext.servletMap.pattern", pattern));
// Add this mapping to our registered set
synchronized (servletMappings) {
String name2 = (String) servletMappings.get(pattern);
if (name2 != null) {
// Don't allow more than one servlet on the same pattern   -----看这里的处理
Wrapper wrapper = (Wrapper) findChild(name2);
wrapper.removeMapping(pattern);
mapper.removeWrapper(pattern);
}
servletMappings.put(pattern, name);
}
Wrapper wrapper = (Wrapper) findChild(name);
wrapper.addMapping(pattern);
// Update context mapper
mapper.addWrapper(pattern, wrapper, jspWildCard);
fireContainerEvent("addServletMapping", pattern);
}
匿名用户
2015-01-09
展开全部
不同的pattern可以映射到同一个servlet,但同一个pattern不能映射到不同的servlet。

首先,servlet-mapping元素在servlet元素之后才能配置。
接下来,根据你请求<url-pattern>路径去访问。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bbdeff
2015-01-07 · 超过63用户采纳过TA的回答
知道答主
回答量:165
采纳率:0%
帮助的人:111万
展开全部
不会报错吗???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式