java - url-pattern "/"vs "/*"vs Servlet 中的空白

标签 java servlets url-pattern

当我使用“/”作为 url 模式时,我可以在地址栏中的斜杠后输入我想要的任何内容,并成功登陆到 servlet。 也就是说,两者

http://localhost:8080/firstServlet/

以及

http://localhost:8080/firstServlet/any_random_string

给了我同样的结果。

但是当我的 url-pattern 为空时,则只有 http://localhost:8080/firstServlet/作品和一切。请解释原因。 有东西herehere类似,但我不太明白。

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

最佳答案

<url-pattern>/*</url-pattern>

servlet 上的/* 会覆盖所有其他 servlet,包括 servlet 容器提供的所有 servlet,例如默认 servlet 和 JSP servlet。无论您发出什么请求,它最终都会出现在该 servlet 中。因此,这对于 servlet 来说是一个不好的 URL 模式。通常,您只想在过滤器上使用/*

<url-pattern>/</url-pattern>

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

对于空 URL 模式

<url-pattern></url-pattern>

The empty string ("") is a special URL pattern that exactly maps to the application's context root

关于java - url-pattern "/"vs "/*"vs Servlet 中的空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44714041/

相关文章:

java - JNA ByteBuffer statvfs

java - 类对象定义排序行为

java - servlet 返回空白页

java - 如何使用 ThreadLocal(特别是与 Servlet 一起使用)?

java - 不了解java中序列化的基础知识

java - @Pathvariable 的 UrlMapping 通配符

java - 如何在 Jersey REST 服务方法参数上使用 jackson mixin

java - 需要削减给定数字的运行时查找除数

Django1.4 : Generic way to set language links in template to work with i18n_patterns?

html - 图像未显示在 JSP 页面上