在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. 百度地图API绘制带头箭头的折线

    源代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" co ...

  2. MySQL配置文件路径及‘The total number of locks exceeds the lock table size’问题

    在删除mysql中的数据时,遇到报错: ERROR 1206 (HY000): The total number of locks exceeds the lock table size 查了查,发现 ...

  3. cx_Oracle使用方法二

    下载地址: https://pypi.python.org/pypi/cx_Oracle/5.2.1, 下载的时候注意数据库版本和操作系统环境. 技术手册: http://cx-oracle.read ...

  4. 【python】只执行普通除法:添加 from __future__ import division

    from __future__ import division 注意future前后是两个下划线

  5. awk基础 [马哥视频]

    awk基础 1.1 print print的使用格式: print item1,item2, …. 要点: 各项目自己使用逗号隔开,而输出时则以空白字符分隔: 输出的item可以为字符串或者数值,当前 ...

  6. C#中获得汉字的首拼音(简化版)

    利用汉字在计算机里面的编码来得到汉字的首拼音: static public string GetChineseSpell(string strText) { int len = strText.Len ...

  7. 练习2 I题 - 水仙花数

      Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description 春天是 ...

  8. MongoDB在windows服务器安装部署及远程连接MongoDB

    (.\是表示在服务器的windows powershell下需要 表示信任此命令才会执行不然会报错,自己电脑上使用时可去掉.\) 在本地使用都不需要开启权限而在服务器上需要开启安全模式所以需要在原本的 ...

  9. bzoj 2331: [SCOI2011]地板 插头DP

    2331: [SCOI2011]地板 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 541  Solved: 239[Submit][Status] D ...

  10. bzoj 2209: [Jsoi2011]括号序列 splay

    2209: [Jsoi2011]括号序列 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 833  Solved: 392[Submit][Status ...