servlet路径配置,相对路径和绝对路径

servlet中的相对路径和绝对路径

一,servlet内部配置路径

a. web.xml中servlet 配置的路径

<url-pattern>/test1/helloWorld</url-pattern>

我们配置的这个“ /test1/helloWorld”,前面必须加“/” ---- 该“/”代表我们应用的名称。比如我们的应用名是“test”,那访问我们应有的地址就是: http:// 192.168.XX.XX:8080/test ,说白了就是代表项目的名称。

“ /test1/helloWorld”代表的路径就是:http:// 192.168.XX.XX:8080/test/test1/helloWorld

总结:

在应用内部,“/”代表的就是应用的名称!

二,页面配置路径

a. form的action路径配置

<form action=" /test /test1/helloWorld" method="post">

解析:

应用名是test,/ 代表站点的url http:// 192.168.XX.XX:8080/,所以/test代表 http:// 192.168.XX.XX:8080/test,

而/test1/helloWorld代表servlet在web.xml中配置的访问路径,所有上面的action可以正确的访问。

但是在真正的应用中,我们经常这样写:

<form action="${pageContext.request.contextPath}/test1/helloWorld" method="post">

${pageContext.request.contextPath} 的效果就是"/应用名" ,这里等于 /test

一样的效果,不解释啦。

三,路径配对过程

浏览器发起一个url请求后,该请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如url是http://10.43.11.143/myapp/kata/detail.html,其应用上下文是myapp,容器会将http://10.43.11.143/myapp去掉,剩下的/kata/detail.html部分拿来做servlet的映射匹配。

参考资料

servlet中的相对路径和绝对路径 及/, ./, ../的区别

JSP、Servlet中的相对路径和绝对路径 页面跳转问题

servlet的url-pattern匹配规则详细描述

web.xml配置详解

经验分享 程序员 微信小程序 职场和发展