绝对路径
以/
开头的路径为绝对路径
- 服务器解析绝对路径为
localhost:8080/JavaWeb/
, - 浏览器解析为
localhost://8080
,没有项目路径(虚拟目录)。
特殊情况:response.sendRediect(“/”)把
/
发送给浏览器解析,得到localhost://8080
后端路径分析
以servlet在web.xml中的配置为例
<servlet>
<servlet-name>servletTest</servlet-name>
<servlet-class>com.tz.servlet.ServletTest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletTest</servlet-name>
<url-pattern>/servletTest</url-pattern>
</servlet-mapping>
对于<url-pattern>/servletTest</url-pattern>
的解析:
url-pattern
是虚拟映射
已知此路径为后台路径,/
解析为localhost:8080/JavaWeb/
,故通过localhost:8080/JavaWeb/servletTest
可访问到该servlet
注意:访问servlet只跟servlet设置的虚拟路径有关系!跟servlet存在于哪个包,哪个文件夹下没有关系
前端路径分析
以在webapp/templates下的index.jsp访问在同样在webapp/templates下的main.jsp为例
此时main.jsp的访问路径为:localhost:8080/JavaWeb/templates/main.jsp
<form action="/JavaWeb/templates/main.jsp">
内容:<input type="text">
<input type="submit">
</form>
此路径由浏览器解析,/
解析为localhost:8080
,故表单的提交地址为localhost:8080/JavaWeb/templates/main.jsp
,所以可以提交到main.jsp页面
注意:
localhost:8080/JavaWeb
映射到idea的webapp目录,如拦截器的url-pattern可以写为/
,即拦截webapp下的所有资源;写为/templates
,即拦截webapp下子目录templates中的资源