zoukankan      html  css  js  c++  java
  • Java Web中资源的访问路径

    在web应用中,以“/”开头的是绝对路径,不以“/”开头的是相对路径。

     
    在服务器端,通常都使用绝对路径。例如web.xml、struts.xml、servlet等的访问路径都是以“/”开始。
    服务器端的“/”等同于:http://localhost:8080/day01/。(day01为工程名)
     
    在客户端,可使用绝对路径,也可使用相对路径。例如html、jsp、css、javascript中。
    但是客户端的绝对路径与服务器端的绝对路径中的“/”代表的意思是不同的。
    客户端的“/”等同于:http://localhost:8080/。(它是不带工程名的)
    比如:这里有一个web工程:day01,在工程根目录下有两个页面:1.jsp和2.jsp。
    1.jsp中有一个超链接:<a href=“/2.jsp”>点击跳转到2.jsp</a>,我们在地址栏输入:http://localhost:8080/day01/1.jsp即可
    访问1.jsp,然后点击超链接后提示错误404,找不到页面。这是由于我们点击超链接后的访问地址是这样的:http://localhost:8080/2.jsp
    所以提示找不到。超链接改成这样就可以了:<a href=“/day01/2.jsp”>点击跳转</a>
    如果使用相对路径是怎样的呢?
    比如:这里有一个web工程:day01,在工程根目录下有一个页面:1.jsp,同时有一个目录:jsp,jsp目录下有一个目录:menu,menu目录下有一个页面:2.jsp。我们在地址栏输入: http://localhost:8080/day01/jsp/menu/2.jsp 可访问到2.jsp。
    在2.jsp中有一个超链接,点击可跳转到1.jsp。假如这个超链接是这样的:<a href=“1.jsp”>点击跳转到1.jsp</a>,点击后提示错误404,找不到页面。因为这里使用了相对路径(相对与当前页面),点击超链接后的访问路径是这样的:http://localhost:8080/day01/jsp/menu/1.jsp,所以提示找不到。改成这样就可以了:<a href=“../../1.jsp”>点击跳转到1.jsp</a>。(“..”代表当前目录的上一级目录)
     
    可以看出,客户端使用相对路径非常麻烦,需要考虑当前页面的位置,所以在客户端我们也统一使用绝对路径。
    但是客户端的绝对路径中都要带着工程名,是写死的,假如有一天工程名修改了,所有页面中的超链接都要改,工作量太大。
    所以这里的工程名不能写死,要动态获取。改成这样就可以了:<a href=“<%=request.getContextPath() %>/1.jsp”>点击跳转到1.jsp</a>。
    request.getContextPath()就是获取工程名:/day01 (注意:这种方式只适用于JSP,html因为是静态页面不能写java代码,所以只能将工程名写死!)
  • 相关阅读:
    异常详细信息: System.Data.SqlClient.SqlException:过程或函数 需要参数 但未提供该参数。
    silverlight error message,ErrorCode:2254 ErrorCode: 1001
    每日英语 词汇
    每日词汇
    电子商务网站用户体验根据用户的习惯进行推荐
    刚做项目的时候
    silverlight 不可
    在Centos6上安装RabbitMQ的过程(有点坑)
    SpringBoot整合Redis
    在IDEA中创建工程并将工程添加至Git
  • 原文地址:https://www.cnblogs.com/caowei/p/2013-12-03_webpath.html
Copyright © 2011-2022 走看看