1.相對地址與絕對地址定義
在jsp,html中使用的地址,都是在前端頁面中的地址,都是相對地址
地址分類:
(1),絕對地址,帶有協(xié)議名稱的是絕對地址,http://www.baidu.com
(2),相對地址,沒有協(xié)議開頭的,例如user/some.do,/user/some.do。相對地址不能獨立使用,必須有一個參考地 址。通過參考地址+相對地址本身
才可以指定資源。
2.訪問地址前面加不加 /
2.1 案例展示
web.xml文件代碼
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
index.jsp頁面代碼
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<a href="web/some.do">發(fā)起一個get請求</a>
</body>
</html>
MyController類代碼
@Controller
public class MyController {
@RequestMapping(value={"/web/some.do"})
public String ReturnModelAndView(){
return "view.jsp";
}
}
view.jsp頁面代碼
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>view</title>
</head>
<body>
<h1>我是結果頁</h1>
</body>
</html>
view.jsp文件的位置
點擊index.jsp頁面請求前,地址欄網址為
點擊后
結論
當你的訪問地址沒有以 / 開頭,例如web/some.do,當你點擊鏈接之后,訪問的地址是當前頁面的地址加上鏈接地址。
http://localhost:8080/springmvc_005_path/ + web/some.do
3. 訪問地址前面加 /
修改index.jsp代碼
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<a href="/web/some.do">發(fā)起一個get請求</a>
</body>
</html>
再次啟動服務器
點擊請求
修改index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<a href="${pageContext.request.contextPath}/web/some.do">發(fā)起一個get請求</a>
</body>
</html>
再次發(fā)起請求
文章來源:http://www.zghlxwxcb.cn/news/detail-697912.html
結論:
不添加 / 時,訪問地址參考的地址是 http://localhost:8080 ,然后加上你的訪問地址 /web/some.do ,缺少項目名,因此我們
可以添加 ${pageContext.request.contextPath}來補全。
4. 使用base標簽簡化操作同時解決不加 / 可能引起的問題
base標簽說明
<base> 標簽為頁面上的所有的相對鏈接規(guī)定默認 URL 或默認目標。
在一個文檔中,最多能使用一個 <base> 元素。<base> 標簽必須位于 <head> 元素內部。
代碼展示文章來源地址http://www.zghlxwxcb.cn/news/detail-697912.html
<%@ 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>
<%--<a href="${pageContext.request.contextPath}/web/some.do">發(fā)起一個get請求</a>--%>
<a href="web/some.do">發(fā)起一個get請求</a>
</body>
</html>
結果略,可以正常訪問
到了這里,關于SpringMVC相對路徑和絕對路徑的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!