Java中的绝对路径与相对路径

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27416233/article/details/83035966

#Java中的绝对路径与相对路径
  近些天对Java中的绝对路径与相对路径比较模糊,本着一个学到手都是自己的原则,下面我们来好好区分下绝对路径与相对路径。

  • 1.绝对路径: 听着名字就大概可以了解到这个东西是绝对的,我们查一下百度百科"绝对":指没有任何条件限制,不受任何限制而言。这个就比较官方一点了,咱们用咱们计算机的事物去分析,举个例子: 比如说你要读取某个文件,如果说这个文件在你的硬盘中(D:\Java\天线宝宝传奇.txt),那么就可以说他是绝对的,因为他相对于你当前的程序他是绝对的,不管你用Eclipse打开还是用IDEA打开,还是说 你把项目从C盘移动到D盘,天线宝宝传奇这本书他都是不变的。

  • 2.相对路径:从名字上我们就可以知道,绝对与相对是相比较而言的,如果说绝对路径是相对于磁盘来说(也可以是服务器)不变的,那么相对路径就可以说是相对于项目来说不变的

下面来说说关于访问时候所出现的问题

在我们访问的时候不外乎以下几种情况

  • 1./
  • 2.不加/
  • 3.localhost:8080/(加不加项目名称这个需要你自己去设置在application.properties里面Springboot项目),他们之间的关系
  • 4.webpp目录

以上几点是我们需要重点区分的,下面我们来一一进行区分
先分享以下博客,WebContent与webapp的区别和联系: https://www.jianshu.com/p/49d106cee189 侵删

一般情况下我们都是将Jsp/Css/Image文件放置到webapp目录下面一般情况下我们需要进行如下的配置:

spring.mvc.view.prefix=/WEB-INF/jsp/

spring.mvc.view.suffix=.jsp

意味着,我们从后端映射的请求回去webapp下面的/WEB-INF/jsp/去寻找文件后缀为jsp的文件

代码结构如下

@Controller
public class TestPathController {
     
     @RequestMapping(value = "/index" ,method = RequestMethod.GET)
     public ModelAndView init() {
         ModelAndView modelAndView = new ModelAndView();
         modelAndView.setViewName("index");
        return modelAndView;
     }

 }

前端的代码结构

展示页面情况

访问地址http://localhost:8080/aoc/index

那么下面就到了我们所讨论的第一个问题,那么我们一般情况下所说的相对路径指的到底是哪里?

我们先做出一个大胆的推测:

  • 1.指的我们所说的src目录

  • 2.指的我们所说的webapp目录

    我个人更加倾向于第一种吧,因为想到了所有的目录都可能是相对而言的,不单单是前端页面,后端请求servlet同样也是这样子的或者说包括我们的Mybatis里面的.sql文件 这些都是需要相对路径去访问的,下面再次提出一个问题。

咱们所指的classPath:这个路径指的是哪里

  • 1.src目录?
  • 2.还是有其他所指?

参考博客:https://blog.csdn.net/qq_33393542/article/details/80322141 侵删

那么下面就回到了我们最初的问题,还是探究相对路径指的是哪里?

    1. 中的路径

      “/”代表的是 web 站点的根路径.。

    也就是我们平时所说的:http://localhost:8080/

  • 2.三.web.xml中的路径

    Servlet 映射 /xx 中的 “/” 代表当 前 web 应用的根路径。
    web应用程序的的根目录:http://localhost:8080/abosulutelyOrRelatively/
    -3 .四.转发和重定向中的路径问题

     1. 如果没有“/”,如request.getRequestDispatcher("hello.jsp ").forward(request,
     	  response) 和response.sendRedirect(" hello.jsp ") 就表示在同级目录
     	中寻找login.jsp文件。
    
    1. 如果路径中包含“/”(注意,这里的“/”是指路径中的第一个“/”)

    a, 转发

    如request.getRequestDispatcher("/hello.jsp").forward(request, response) :代表到http://localhost:8080/test/ 下目录寻找hello.jsp文件。

    b,重定向

    如response.sendRedirect("/hello.jsp"):代表到http://localhost:8080/ 目录下寻找hello.jsp文件

    参考博客:https://blog.csdn.net/u014507083/article/details/53768511

    收获还是蛮大的,知识还是记录下来的好

猜你喜欢

转载自blog.csdn.net/qq_27416233/article/details/83035966