gku*_*mar 46 java web.xml servlets url-pattern servlet-mapping
我已web.xml为我的应用程序手动配置.现在,我在运行我的应用程序时遇到了问题.我正试图servlet从我的jsp页面访问我的.但是,它正在抛出错误page not found.
servlet位于文件夹下方
<application folder>/WEB-INF/classes/<package>
Run Code Online (Sandbox Code Playgroud)
那么,究竟应该是在Servlet中的条目url-pattern和servlet-mapping.这样,servlet可以通过URL访问.
Rav*_*avi 69
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>
Run Code Online (Sandbox Code Playgroud)
如果你改变url-pattern的AddPhotoServlet,从/AddPhotoServlet到/MyUrl.然后,AddPhotoServlet可以使用servlet访问/MyUrl.出于安全原因,您希望隐藏实际页面网址.
Java Servlet url-pattern规范:
- 以"/"字符开头并以"/*" 后缀结尾的字符串用于路径映射.
- 以"*"开头的字符串 prefix用作扩展映射.
- 仅包含'/' 字符的字符串表示应用程序的"默认"servlet.在这种情况下,servlet路径是请求URI减去上下文路径,路径信息为null.
- 所有其他字符串仅用于完全匹配.
您还可以阅读此Java Servlet基础知识
San*_*yan 31
Servlet-mapping有两个子标记,url-pattern和servlet-name.url-pattern指定要为其调用servlet-name中指定的servlet的url类型.请注意,容器将使用区分大小写进行字符串比较以进行servlet匹配.
服务器.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
Run Code Online (Sandbox Code Playgroud)
url-pattern位于example.com上的路径上的路径/示例的上下文的第二个规范匹配模式,<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`
Run Code Online (Sandbox Code Playgroud)
第三个规范 url-mapping,<url-pattern>/</url-pattern>如果没有其他模式匹配,则包含模式的映射与请求匹配.这是默认映射.映射到此模式的servlet称为默认servlet.
默认映射通常指向应用程序的第一页.显式提供默认映射还可确保应用程序返回格式错误的URL请求,而不是返回错误.
下面的servlet-mapping元素将serverservlet实例映射到默认映射.
<servlet-mapping>
<servlet-name>server</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
对于包含此元素的上下文,任何未由另一个映射处理的请求都将转发到serverservlet.
最重要的是,我们应该了解URL路径映射的规则
参考网址格式
| 归档时间: |
|
| 查看次数: |
190792 次 |
| 最近记录: |