SpringMVC学习笔记(七)绝对路径和相对路径
在jsp , html中使用的地址, 都是在前端页面中的地址,都是相对地址
地址分类:
1.绝对地址 , 带有协议名称的是绝对地址, http://www.baidu.com , ftp://202.122.23.1
2.相对地址, 没有协议开头的, 例如 user/some.do , /user/some.do
相对地址不能独立使用,必须有一个参考地址。 通过参考地址+相对地址本身才能指定资源。
(参考地址是指项目在执行过程中会有一个地址,我们会根据这个地址加上我们自定义部分的地址组成完整地址)比如找张三同学, 1班有张三, 2班也有张三,这时候1班和2班就是参考地址
3.参考地址
1) 在你的页面中的,访问地址不加 “/”
我们运行工程访问的是: http://localhost:8080/ch06_path/index.jsp
路径: http://localhost:8080/ch06_path/(因为带协议,绝对地址)
资源: index.jsp
<p><a href="user/some.do">发起some.do的get请求</a> </p>
在index.jsp发起 user/some.do请求,访问地址变为 http://localhost:8080/ch06_path_war/user/some.do
http://localhost:8080/ch06_path_war/user/some.do
结论:
在index.jsp发起 user/some.do请求,访问地址变为 http://localhost:8080/ch06_path_war/user/some.do
当你的地址 没有斜杠开头,例如 user/some.do , 当你点击链接时, 访问地址是当前页面的地址(参考地址)加上链接的地址。 http://localhost:8080/ch06_path_war/ + user/some.do
当前页面地址:↓
2)在你的页面中的,访问地址加 “/”
访问的是: http://localhost:8080/ch06_path_war/index.jsp
路径: http://localhost:8080/ch06_path_war/
资源: index.jsp
点击 /user/some.do, 访问地址变为 http://localhost:8080/user/some.do
参考地址是 你的服务器地址, 也就是 http://localhost:8080
当把index.jsp中的访问地址修改
<p><a href="/user/some.do">发起some.do的get请求</a> </p>
再访问
当我们加了“/”,参考地址变成了服务器的IP到端口号
解决方法①把这的地址改成/ch06_path_war/user/some.do
<p><a href="/ch06_path_war/user/some.do">发起some.do的get请求</a> </p>
其中ch06_path_war依据是你自己配置的服务器
解决方法②EL表达式
为了适应不同的工程,可以用EL表达式
如果你的资源不能访问: 加入${pageContext.request.contextPath}
<a href="${pageContext.request.contextPath}/user/some.do">发起user/some.do的get请求</a>
不加“/”时加base标签解决路径问题
<%
String basePath = request.getScheme() + "://" +
request.getServerName() + ":" + request.getServerPort() +
request.getContextPath() + "/";
%>
getScheme():获取协议名称 :http
getServerName() :获取服务器名称:localost
getServerPort():获取端口号:8080
getContextPath():获取工程路径
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String basePath = request.getScheme() + "://" +
request.getServerName() + ":" + request.getServerPort() +
request.getContextPath() + "/";
%>
<html>
<head>
<title>Title</title>
<base href="<%=basePath%>" />
</head>
<body>
<p>第一个springmvc项目</p>
<p><a href="user/some.do">发起user/some.do的get请求</a> </p>
<br/>
</body>
</html>
我们访问的时候得到的地址就是base中的地址加上href
附件
链接:https://pan.baidu.com/s/1fQ0DFq33He5g4gNb8RTpBw
提取码:rz4r
推荐阅读
-
SpringMVC学习笔记(七)绝对路径和相对路径
-
【前端学习笔记day09】2.5. html图像标签、绝对路径和相对路径
-
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
-
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
-
SpringMVC使用ModelAndView的相对路径和绝对路径的问题
-
Python学习笔记(七)—Python中is和==(is not和!=)的区别
-
(七) 学习笔记: python文件操作pickle模块使用和时间模块
-
Java学习笔记(七)——Java处理日期和时间
-
《快学Scala》第七章——包和引入 学习笔记
-
qml学习笔记(七):输入元素鼠标输入MouseArea和键盘输入Keys