当前位置: 首页 > 图灵资讯 > 技术篇> 绝对路径和相对路径

绝对路径和相对路径

来源:图灵教育
时间:2023-06-05 09:30:06

1.地址分类:39

jsp和html中使用的地址都是前端页面中的地址,都是相对地址

1.1绝对地址39

具有协议名称的绝对地址,如http://www.baidu.com,ftp://202.122.23.1

1.2相对地址39

没有协议开始的,比如user//some.do,/user/some.do

相对地址不能独立使用,必须有参考地址。资源只能通过参考地址+相对地址本身来指定。

1.3参考地址391.3.1在您的页面中,访问地址不添加“/”

注意我们的user/some.do前没有斜杠//

index.jsp

<a href="user/some.do">发起user//some.doget请求 没有斜杠/</a>

访问的是:http://localhost:8080/ch06_path/index.jsp

路径:http://localhost:8080/ch06_path/

资源:index.jsp

在index.发起user/jsp页面some.do请求将访问地址转换为http://localhost:8080/ch06_path/user/some.do

当你的地址开头没有斜杠,例如,user/例如,例如,例如user/例子some.do,点击链接时,访问地址是当前页面的地址和链接的地址。

http://localhost:8080/ch06_path/+user/some.do

访问成功

绝对路径和相对路径_相对路径

1.3.在您的页面中,访问地址添加“/”39

注意我们的user/some.do之前加了斜杠//

访问失败

index.jsp

<a href="/user/some.do">发起user//some.doget请求 没有斜杠/</a>

访问的是:http://localhost:8080/ch06_path/index.jsp

路径:http://localhost:8080/ch06_path/

资源:index.jsp

点击/user/some.do,访问地址变成httpp://localhost:8080/user/some.do

参考地址是您的服务器地址,即http://localhost:8080

访问失败,修改为/user/some.在do之前,项目根变成/ch06_______________path/user/some.do

绝对路径和相对路径_get请求_02

项目根修改后,访问成功

修改在/user/some.在do之前,项目根变成/ch06_______________path/user/some.do

<a href="/ch06_path/user/some.do">发起user//some.doget请求 加斜杠/并修改版本</a><br>

绝对路径和相对路径_相对路径_03

使用EL表达式动态添加项目的根源

如果您的资源无法访问,按照上述重写方法过于死板,可采用EL表达式动态获取:

添加EL表达式${pageContext.request.contextPath}

<%--使用EL表达式 动态 增加项目根路径 39--%><a href="${pageContext.request.contextPath}/user/some.do">发起user//some.doget请求 加斜杠/EL修改版</a><br>

绝对路径和相对路径_html_04

index.jsp--addStudent.jsp---student/addStudent.do(service方法,调用dao方法)--result.jsp

2.解决路径访问问题40

使用mv.setViewName("/index.jsp");让我们让页面再次回到index.jsp,然后再次点击somee.看看do的效果

MyController

@RequestMapping(value = "/user/some.do")    public ModelAndView doSome(){// doGet()-->service请求处理        ///处理some.do请求了。 相当于service调用处理的完成。        ModelAndView mv = new ModelAndView();        //添加数据, 在请求结束时,框架将数据放入request作用域。        mv.addObject("msg“欢迎使用springmvc坐web开发”;        mv.addObject("fun",“执行dosome方法”);        ///用视图解析器填写路径        mv.setViewName("/index.jsp");        //返回mv        return mv;    }

index.jsp

<%--不加/  39--%><a href="user/some.do">发起user//some.doget请求 没有斜杠/</a><br/>

第一次点击没问题

index.user/jsp访问user/some.do,返回后现在的地址:http://localhost:8080/ch06_path/user/some.do

http://localhost:8080/ch06_path/user/some.do

路径:http://localhost:8080/ch06_path/user/

资源:some.do

第二次点击错误

在index.再次点击user/jspsome.do,变成http://localhost:8080/ch06_path/user/user/some.do报错

绝对路径和相对路径_相对路径_05

2.1解决方案:402.1.1加入${pageContext.request.contextPath}2.1.40-412base标签

在html语言中添加base标签。表示当前页面中访问地址的基地址。您的页面中没有“/”开头的所有地址,以base标签中的地址为参考地址使用base中的地址+user/some.构成访问地址的do

index.jsp

<%--index.编写jsp页面  39--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>第一个springmvc项目</title>    <base href="http://localhost:8080/ch06_path/"/></head><body>    <p>第一个springmvc项目</p>    <p>        <%--不加/  39--%>        <a href="user/some.do">发起user//some.doget请求 没有斜杠/</a>        <br/>        <br>    </p></body></html>

每次写上面的base标签都很麻烦,可以动态获取41

<%--动态获取项目的根路径 比如 http://localhost:8080/ch06_path/    41--%><%    String basePath = request.getScheme() + "://" +            request.getServerName() + ":" + request.getServerPort() +            request.getContextPath() + "/";%>

然后引入

<%--   base标签 base标签中的地址作为参考地址    40    使用base中的地址 + 资源地址 构成访问地址-%>    <base href="<%=basePath%>"/>