url-pattern "/" vs "/*" vs blank in servlet

12 浏览
0 Comments

url-pattern "/" vs "/*" vs blank in servlet

这个问题已经在这里得到了答案:

Servlet映射URL模式中/和/*的区别

当我的URL模式为“/”时,在地址栏中键入任何我想要的斜杠后面的内容,都能成功着陆到servlet。

也就是说,

http://localhost:8080/firstServlet/

http://localhost:8080/firstServlet/any_random_string

都会给我相同的结果。

但是,当我将URL模式留空时,http://localhost:8080/firstServlet/ 才能正常运行。请解释原因。

这里有一些类似的讨论:这里这里,但我并不完全理解它们。

模式“/*”的行为也与“/”相同。

admin 更改状态以发布 2023年5月20日
0
0 Comments

/*

/*在servlet中会覆盖所有其他servlet,包括由servlet容器提供的所有servlet,例如默认servlet和JSP servlet。无论发出什么请求,它都会进入该servlet。因此,这是servlet的不良URL模式。通常,只应在Filter上使用 /*

/

/不会覆盖任何其他servlet。它仅替换所有未匹配其他已注册servlet的请求的servlet容器内置默认servlet。这通常仅在静态资源(CSS / JS / image / etc)和目录列表上调用

空的URL模式


空字符串(“”)是一种特殊的URL模式,完全映射到应用程序的上下文根

0