在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代码,所以只能将工程名写死!)

Java Web中资源的访问路径的更多相关文章

  1. day10(java web之request&respone&访问路径&编码问题)

    day10 请求响应流程图 response response概述 response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletR ...

  2. Java Web 前端资源文件的路径问题

    WEB-INF是Java Web应用的安全目录,在部署时用于存放class文件.项目用到的库(jar包).Java Web应用的配置文件web.xml. 浏览器不能访问此目录下的资源,比如在WEB-I ...

  3. java web中servlet、jsp、html 互相访问的路径问题

    java web中servlet.jsp.html 互相访问的路径问题 在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对. java web中的路径使用按我的分法可 ...

  4. java web中路径问题。

    转自:http://blog.csdn.net/liang5630/article/details/38474543 如有侵权,请及时联系本人及时删除 在java web种经常出现 404找不到网页的 ...

  5. Java Web 中使用ffmpeg实现视频转码、视频截图

    Java Web 中使用ffmpeg实现视频转码.视频截图 转载自:[ http://www.cnblogs.com/dennisit/archive/2013/02/16/2913287.html  ...

  6. 【中文乱码】深入分析 Java Web 中的中文编码问题

    深入分析 Java Web 中的中文编码问题 1.几种常见的编码格式 1.1 为什么要编码 在计算机中存储信息的最小单元是 1 个字节,即 8 个 bit, 所以能表示的字符范围是 0 ~ 255 个 ...

  7. 【转】Java Web 项目获取运行时路径 classpath

    Java Web 项目获取运行时路径 classpath 假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么ja ...

  8. Java Web 中 过滤器与拦截器的区别

    过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法u ...

  9. Java web中常见编码乱码问题(一)

    最近在看Java web中中文编码问题,特此记录下. 本文将会介绍常见编码方式和Java web中遇到中文乱码问题的常见解决方法: 一.常见编码方式: 1.ASCII 码 众所周知,这是最简单的编码. ...

随机推荐

  1. JVM学习笔记-运行时数据区

    不同于C,C++程序,Java程序的内存管理工作由Java虚拟机(JVM)接管,这减低了java程序员的负担,但如果出现内存泄露与溢出问题如报OutOfMemory,StackOverFlow异常错误 ...

  2. Type 类型

    修改 type 类型 UPDATE  wd_order2 SET  info = array_append(info, row(2,100001, now() )::info )  WHERE id_ ...

  3. Windows安装Subversion

    1.安装Setup-Subversion-1.8.16.msi下载地址:https://sourceforge.net/projects/win32svn/ 2.将svn添加到Windows系统服务s ...

  4. How To mount/Browse Windows Shares【在linux{centos}上挂载、浏览window共享】

    How to mount remote Windows shares Contents Required packages Basic method Better Method Even-better ...

  5. python中跟字符串相关的一些操作

    公司让用python自动生成代码,以前没看过python.所以匆匆的看了两天python就连猜带蒙就上马开干了..因此好多操作可能看的时候看懂了,用的时候知道有这么个东西,具体用法就忘记了..用到了就 ...

  6. wget命令解析

           今天一学信息安全的同学让我编写一个软件,功能大致如下:输入网站首页,自动下载该网站所有网页并保存?拿到后感觉属于搜索引擎相关的,说实话我就感觉会用到递归,不过我不会写,百度也没找到资料, ...

  7. L1、L2范式及稀疏性约束

    L1.L2范式及稀疏性约束 假设需要求解的目标函数为: E(x) = f(x) + r(x) 其中f(x)为损失函数,用来评价模型训练损失,必须是任意的可微凸函数,r(x)为规范化约束因子,用来对模型 ...

  8. Codeforces Round #205 (Div. 2) : B

    如果某个数出现的次数大于或等于2次,那么平均分配到两个容器里面: 这里利用一个k来使得当出现次数为奇数时候分配得更加均匀: 剩下的就平均分配到两个容器里: 代码: #include<iostre ...

  9. DIV焦点事件

    div本来是没有focus和blur事件的. 如果用div来模拟一个input标签,同时需要它和input一样响应focus和blur事件, 就需要给他加上attribute:tabindex An ...

  10. 【POJ3208】 (DP)

    Apocalypse Someday Description The number 666 is considered to be the occult “number of the beast” a ...