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配置详解
