路径问题是一个在平时学习和开发碰到的常见问题,对于初学者是一个比较值得研究的东西。因此对路径问题进行总结。

  1. 编写路径为了告诉编译器如何找到其他资源。

   2. 路径分类

    • 相对路径:从当前资源出发寻找其他资源的过程。

      • 例如,在src目录下的mybatis.xml文件里配置resource使用的是相对路径,即从src目录下寻找com/bjsxt/mapper/PeopleMapper.xml

    • 绝对路径: 从根目录(服务器根目录或项目根目录)出发找到其他资源的过程

      • 例如,在ShowServlet中请求转发到index.jsp,因为在注解WebServlet中配置Servlet时定义了("/abc/b/show"),也就是在WebContent下映射了一个虚拟文件夹abc,abc文件夹下有一个虚拟文件夹b,文件夹b下有资源show,而此时index.jsp在WebContent下。请求转发如果使用相对路径,则应写为"../../index.jsp",而这就非常复杂,而如果使用绝对路径,就可写为"/index.jsp",这样不会出错。

      • 标志: 只要以 / 开头的都是绝对路径 。

3. 绝对路径

    • 如果是请求转发 / 表示项目根目录(WebContent。
    • 其他重定向或者静态资源引用<img src=""/>, <a href="">,  <script src=""/> ,css等引用时/都表示服务器根目录(tomcat/webapps 文件夹)。

4. 如果客户端请求的控制器(Servlet),控制器转发到JSP后,jsp中如果使用相对路径,需要按照控制器的路径去找其他资源

    • 保险方法:使用绝对路径。
    • 例如:
      • 之前的ShowServlet请求转发至index.jsp,在jsp中显示图片<img src="data:image/a.png"/>,使用相对路径,此时显示失败,原因是jsp中如果使用相对路径,需要按照控制器的路径(ShowServlet)去找其他资源,而控制器中有虚拟的文件目录abc/b/,浏览器就会在abc/b/下寻找image文件夹,所以无法寻找到图片。
      • 此时为避免路径太过复杂,使用绝对路径,</项目名/img src="data:image/a.png"/>,图片显示成功。
      • 使用项目名而不使用WebContent是因为Tomcat发布项目以后,WebContent会更改文件名为项目名

  

java学习中碰到的疑惑和解答(二)的更多相关文章

  1. java学习中碰到的疑惑和解答(一)

    今天写一个接口的时候发现,接口的方法不需要写修饰符,直接写数据类型加上方法名(参数)即可通过编译. import java.util.List; import com.bjm.pojo.Flower; ...

  2. java学习中的一些疑惑解答

    一.java中的枚举类型: 在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的.例如星期一到星期日七个数据元素 ...

  3. Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)

    Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: class Star8 { public static void m ...

  4. Java 需要记得、了解的关键词 (Java 学习中的小记录)

    Java 需要记得.了解的关键词 (Java 学习中的小记录)     作者:王可利(Star·星星) 总结:本次随笔,仅且拿来平时翻阅记忆用

  5. Java学习中,常用的命令管理(Java 学习中的小记录)

    Java学习中,常用的命令管理      作者:王可利(Star·星星) 一.Window中常见的dos命令 在哪里操作dos命令: Win7 ---> 开始  ---->所有程序---& ...

  6. JAVA学习中好网站 - -

    http://www.54bk.com 我是博客 http://www.java-cn.com java中文网 http://java.sun.com sun官方网站 http://www.comej ...

  7. Java web中常见编码乱码问题(二)

    根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例: 案例分析:   2.输出流写入内容或者输入流读取内容时乱码(内容中有中文) 原因分析: a. 如果是按字节写入或读取时乱码, ...

  8. java学习中一些疑惑解答(2)

    (一)继承条件下构造方法的调用 以下面的源代码为例: package ktdemo; class Grandparent { public Grandparent() { System.out.pri ...

  9. JAVA学习中Swing概述中的JFrame学习

    package com.swing; import java.awt.Color;import java.awt.Container;import java.awt.event.WindowAdapt ...

随机推荐

  1. SpringBoot开发案例之分布式集群共享Session

    前言 在分布式系统中,为了提升系统性能,通常会对单体项目进行拆分,分解成多个基于功能的微服务,如果有条件,可能还会对单个微服务进行水平扩展,保证服务高可用. 那么问题来了,如果使用传统管理 Sessi ...

  2. 小容量单片机生成pdf文件

    工作上要求使用小容量单片机生成直接生成pdf文件.经过一段时间的摸索,其中参考了libharu,库太大,不适合在单片机上使用页参考了与非网上一位前辈的库,占用的RAM太大,不适合小容量单片机,主要资料 ...

  3. 走进python

    python史 1.python之父 Guido van Rossum 2.python的优缺点 优点:开发效率高,可跨平台,可嵌入,可扩展,优雅简洁 缺点:运行稍慢,代码不能加密,不能实现真正的多线 ...

  4. web前端css(二)

    一.  标准文档流 标准文档流中会有一些现象: 空白折叠 和 高低不齐边底对齐的现象 标准文档流等级森严, 标签分为两种等级: 行内元素 和 块级元素. 1. 行内元素 和 块级元素的区别: 行内元素 ...

  5. 安装Win10,ERROR_0x8007025D问题解决

    Windows10安装的时候,出现ERROR CODE:0x8007025D 大概提示为:windows 无法安装所需的文件.请确保安装所需的所有文件可用,并重新启动安装. 本人在出现这个问题的原因, ...

  6. 基于lua-nginx-module(openresty)的WEB应用防火墙

    独乐乐,不如众乐乐,分享给大家一篇WEB应用防火墙的文章,基于Lua+ Nginx实现.以下是ngx_lua_waf的作者全文输出. Github地址:https://github.com/loves ...

  7. Bzoj3517 翻硬币题解 解异或方程组

    3517: 翻硬币 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 281  Solved: 211[Submit][Status][Discuss] D ...

  8. 《ElasticSearch6.x实战教程》之准备工作、基本术语

    第一章-准备工作 工欲善其事必先利其器 ElasticSearch安装 ElasticSearch6.3.2下载地址(Linux.mac OS.Windows通用,下载zip包即可):https:// ...

  9. SSAS Tabular 表格模型建模(关系)及部署

    一.表格建模(SSAS 表格)   表格模型是 Analysis Services 中的内存中数据库. 使用最先进的压缩算法和多线程查询处理器,xVelocity 内存中分析引擎 (VertiPaq) ...

  10. .net持续集成cake篇之使用vs或者vscode来辅助开发cake脚本

    使用Visual Studio来开发工具 前面我们都是通过手写或者复制的方法来编写Cake文件,Cake使用的是C#语言,如果仅使用简单的文本编辑器来编写显然效率是非常低下的,本节我们讲解如何使用ca ...