JSP 10: 客户端的绝对路径问题

1.   客户端路径: 

<1> 指向资源 (某个html/JSP/Servlet..页面, 也可能指向某个图片/CSS/JS文件)

<2> 需要浏览器发起请求, 解析路径

2.   服务器端路径

<1> 需要服务器端解析

<jsp:include page="head.jsp"></jsp:include>, head.jsp 就是一个服务器端路径

3.  例子

<1>  创建文件:

<2>  

<a>  在path.jsp中:  

      <body>
        <h1>这是一个h1标签!!</h1>
      </body>

<b>  在style.css中:

      h1 {
        color: green;
      }

<c>  在path.jsp中引入css (使用相对路径):

      <head>

        <link rel="stylesheet" href="css/style.css" type="text/css" />

      <head>

效果:

<c-2>  在path.jsp中引入css (使用绝对路径):

      <head>

        <link rel="stylesheet" href="/css/style.css" type="text/css" />

      <head>

效果:

 解释: 如果在路径前加上 "/", 就会从项目的根目录去找

在本例中,就变成了: http://localhost:8080/css/style.css (因此找不到)

<c-3>  在path.jsp中引入css (使用正确的绝对路径):

      <head>

        <link rel="stylesheet" href="/web04/css/style.css" type="text/css" />

      <head>

效果:

<d>  由于项目名可能会被修改, 因此,绝对路径不是一成不变的

对此, 进行优化:

在path.jsp中:

  <% System.out.println(request.getContextPath());  %>  <!-- 获取到当前项目名 --> 

效果:

  输出了/web04

因此, 应该将绝对路径写为:

      <head>

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

      <head>

原文地址:https://www.cnblogs.com/JasperZhao/p/13507274.html