一个项目的URL是:http://localhost:8080/fengmiproject/UserFuzzyServlet
分别是:协议;IP(域名);端口;项目名字;文件(Servlet 或者jsp 文件)
一. URL 问题
- 当浏览器解析URL到端口时,代表了此时已经到了当前IP地址的服务器,比如我这个计算机就是tomcat服务器,代表进来了!
- 而一个服务器下可能有很多项目名称,用来区分项目。如这里的fengmiproject就算是一个项目名称。我们在web项目中得到的contextpath就是 /fengmiproject 这个路径,代表这个服务器下的这个项目的入口。
路径分类:
1、请求重定向
2、转发
3、超链接 (href)
4、form表单提交的action
路径的写法主要注意以两点:
1、路径是谁发起的(浏览器,服务器)
2、路径开头直接 “/” 表示当前路径(主要就是这个当前路径,搞清楚就明白了)
-
首先来分析“路径是由谁发起的”,以上四种写法,除了**“转发”是服务器发起的**,其他都是由浏览器发起的。而由浏览器发起的请求,你都要从新定位到项目中,也就是加contextpath
-
由浏览器发起的路径,“/”表示%tomcat根目录%/项目根目录
由服务器发起的路径,“/”表示项目的根目录
其他杂七杂八解释:
二.超链接路径
- 路径是以 / 开头的:这个 / 就等于浏览器中的http://ip:port/也就是服务器的路径。也就是此时没有定位到具体的项目的。
跳转 - 路径不以 / 开头:此时以浏览器地址正在访问的这个资源所在的目录为基准
跳转
三.后端路径,也就是Servlet路径
- 转发是在项目内部,所以 / 就是代表了,当前的项目路径。
- 重定向,代表在整个网络资源下访问所以你要加上 / 就是要服务器的项目名来定位到这个项目。
四. action和超链接性质一样
五. 带 / 和 不带 / 区别
- 不以 / 开头 ,则是默认了但当前的这个资源到目录
- 以 / 开头,则按照上面的情况判断,是 转发发还是重定向。
本文,摘抄了其他作者的内容。