1. web项目中的路径问题
1)URL
1.统一资源定位符:用于唯一定位互联网上的一个资源
2.格式:协议://域名(ip):端口号/项目路径/资源路径
- 1.http://localhost:8080/Servlet09 /admin/listEmp
- 2.https://www.baidu.com
2)路径的2种写法
1.相对路径
-
1.从当前文件到目标文件的路径称为相对路径
-
2.当前文件位置不同,相对路径也不同
-
3.相对路径的写法:“css/style.css”, “…/css/style.css 或 …/…/css/style.css” (不以 “/” 开头)
-
4.相对路径不能 拿来直接访问互联网上的资源,必须由浏览器拼接成完整的url ,才能访问互联网上的资源
-
5.可以在html页面中添加一个
<base href="路径">
,为当前页面指定一个父路径,供拼接路径使用
以上拼接完成后,会多一个admin -
6.相对路径表示
2.绝对路径
- 1.从一个固定位置到目标文件的路径称为绝对路径,一般是项目的根目录
- 2.当前文件位置对绝对路径没有影响
- 3.绝对路径要以“/”开头 ,或者 "http://…"
- 4.可以利用html提供的base标签解决这一问题。以下操作在
<head>
标签中实现
<!-- 静态设置 -->
<!-- 在head标签中,设置<base>,指定当前页面的父路径。例如: -->
<base href="http://localhost:8080/Servlet09/">
<!-- 一般用动态生成 -->
<%String path=request.getContextPath();
//动态生成basePath,后期路径变化,代码不用修改
String bsePath=request.getScheme()+"://"
+request.getServerName()+":"
+request.getServerPort( )+path+"/";
%>
<!-- 用于指定当前页面的父路径,供拼接路径使用 -->
<!-- 格式href="协议://域名:端口号/项目路径/" -->
<base href="<%=basePath %>">
3)html中出现的路径:
- 1.
<a href="">
- 2.
<img src="">
- 3.
<form action="">
- 3.
<script src="">
- 4.
<link href="">
3.Servlet中的路径:
- 1.请求转发:路径中不应该包含项目映射的路径
- 1.请求转发login.jsp
- 1.request.getRequestDispatcher("/login.jsp");
- 1.请求转发login.jsp
- 2.请求重定向:路径中需要包含当前项目映射的路怪
- 1.重定向到login.jsp
- 1.response.sendRedirect("/Servlete09/login.jsp");
- 1.重定向到login.jsp
- 3.如何记忆:
- 1.请求转发的目标有限制:只能是当前项目内部的资源
- 2.请求重定向的目标没有限制,因此必须添加项目路径来限定