java学习中碰到的疑惑和解答(二)

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

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

 

 

 

 

  

posted @ 2019-01-03 00:06  家铭  阅读(196)  评论(0编辑  收藏  举报