关于客户端路径和服务器端路径如何使用相对路径和绝对路径的问题

参考了这篇博客https://blog.csdn.net/u012124564/article/details/47355409

再加看的视频得出一些经验。

先说说关于客户端路径和服务器端路径问题

客户端路径:就是跳转过后能显示目标资源的url的就是客户端路径

服务器端路径:跳转后不显示目标资源的url就是服务器端路径。

举个例子来说明一下

  客户端路径像是你给10086打电话咨询套餐问题,10086人工服务小姐姐表示她不管理

这方面,给你个号码让你再给这个号码打一下。这样你就按着这个号码打过去,这就是客户

端路径,地址被改变了。

  服务器端路径就像是你给10086打电话询问套餐问题,她虽然不懂,当时让你稍等一下,

她帮你问问怎么解决,解决后把答案给你。但是你的地址没有发生改变,你还是打的10086

这个号码。

  

如果是客户端路径:


1、链接跳转:<a href=””></a>


2、表单提交


3、Response.sendRedirect(“3.jsp”);


4、<mata http-equiv=”refresh”, content=”3;2.jsp”/>


5、response.setHeader(“refresh”,” 3;2.jsp”);


6、客户端跳转“/”代表服务器跟路径webapps

以上这些最好使用绝对路径:

举个例子

在项目下 有path.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>Insert title here</title>
 8 <link rel="stylesheet" href="style/style.css" type="text/css">
 9 </head>
10 <body>
11 <h1>halo咯</h1>
12 </body>
13 </html>

这其中的href链接是相对路径,style.css是将h1设置为红色

1 @charset "UTF-8";
2 h1{
3     color:red;
4 }

运行结果为

显示为红色,很正常

如果通过list.jsp访问path.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10 <%
11 
12 request.getRequestDispatcher("../path.jsp").forward(request, response);
13 
14 %>
15 </body>
16 </html>

结果为

结果显示为黑色,并没有变为红色。

因为使用request.getRequestDispatcher从list.jsp跳入path.jsp相当于在list.jsp下寻找style.css

当然找不到。 所以就需要使用绝对路径

像这样

<link rel="stylesheet" href="<%=request.getContextPath() %>/style/style.css" type="text/css">

就可以了,因为request.getContextPath()是从当前目录寻找,所以就能找到

而服务器端路径可以使用绝对路径。

1、<jsp:forward page=””/>


2、pageContext.forward();


3、 request.getRequestDispatcher("1.jsp").forward(request,response);

猜你喜欢

转载自www.cnblogs.com/xcl666/p/10504430.html
今日推荐