我已web.xml
为我的应用程序手动配置。现在,我在运行我的应用程序时遇到了问题。我正在尝试servlet
从我的jsp
页面访问我的。但是,它抛出错误为page not found
.
servlet 位于文件夹位置下方
<application folder>/WEB-INF/classes/<package>
url-pattern
那么,和中的 servlet 条目应该是什么servlet-mapping
。因此,servlet
可以通过 URL 访问。
我已web.xml
为我的应用程序手动配置。现在,我在运行我的应用程序时遇到了问题。我正在尝试servlet
从我的jsp
页面访问我的。但是,它抛出错误为page not found
.
servlet 位于文件夹位置下方
<application folder>/WEB-INF/classes/<package>
url-pattern
那么,和中的 servlet 条目应该是什么servlet-mapping
。因此,servlet
可以通过 URL 访问。
url-pattern
用于web.xml
将您映射servlet
到特定的 URL。请参阅下面的 xml 代码,您可以在web.xml
配置文件中找到类似的代码。
<servlet>
<servlet-name>AddPhotoServlet</servlet-name> //servlet name
<servlet-class>upload.AddPhotoServlet</servlet-class> //servlet class
</servlet>
<servlet-mapping>
<servlet-name>AddPhotoServlet</servlet-name> //servlet name
<url-pattern>/AddPhotoServlet</url-pattern> //how it should appear
</servlet-mapping>
如果您从更改url-pattern
为。然后,可以使用 .servlet 访问 servlet 。出于安全原因,您希望在其中隐藏您的实际页面 URL。AddPhotoServlet
/AddPhotoServlet
/MyUrl
AddPhotoServlet
/MyUrl
Java Servleturl-pattern
规范:
- 以“/”字符开头并以“/*”后缀结尾的字符串 用于路径映射。
- 以“*”开头的字符串。 前缀用作扩展映射。
- 仅包含“/” 字符的字符串表示应用程序的“默认”servlet。在这种情况下,servlet 路径是请求 URI 减去上下文路径,并且路径信息为空。
- 所有其他字符串仅用于完全匹配。
您还可以阅读此Java Servlet 基础知识
Servlet-mapping 有两个子标签,url-pattern 和 servlet-name。url-pattern 指定应该调用 servlet-name 中给出的 servlet 的 url 类型。请注意,容器将区分大小写用于 servlet 匹配的字符串比较。
server .com 的 servlet 容器上的服务器上下文文件的第一个规范与以下url-pattern
模式匹配:web.xml
<url-pattern>/status/*</url-pattern>
http://server.com/server/status/synopsis = Matches
http://server.com/server/status/complete?date=today = Matches
http://server.com/server/status = Matches
http://server.com/server/server1/status = Does not match
url-pattern
位于 example.com 代理上路径 /examples的 A 上下文的第二个规范<url-pattern>*.map</url-pattern>
与以下模式匹配:
http://server.com/server/US/Oregon/Portland.map = Matches
http://server.com/server/US/server/Seattle.map = Matches
http://server.com/server/Paris.France.map = Matches
http://server.com/server/US/Oregon/Portland.MAP = Does not match, the extension is uppercase
http://example.com/examples/interface/description/mail.mapi =Does not match, the extension is mapi rather than map`
的第三个规范 url-mapping
,如果没有其他模式匹配,则包含该模式的映射<url-pattern>/</url-pattern>
匹配请求。这是默认映射。映射到此模式的 servlet 称为默认 servlet。
默认映射通常指向应用程序的第一页。显式提供默认映射还可以确保应用程序返回的格式错误的 URL 请求由应用程序处理,而不是返回错误。
下面的 servlet-mapping 元素将server
servlet 实例映射到默认映射。
<servlet-mapping>
<servlet-name>server</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
对于包含此元素的上下文,任何未被另一个映射处理的请求都将转发到server
servlet。
最重要的是我们应该了解URL 路径映射的规则
参考URL 模式