关于web开发路径的一些问题(概念)

       1.  / 与 \ 的区别:作为目录分隔符:Windows目前用 \ 和 / 都可以,Unix只能用 / 。因为web最开始在Unix上跑,所以URL也用 / 做目录分割符。

  2.  /      表示文件根目录

      ./     表示文件目前所在的目录(写与不写等效)

     ../    表示文件的上一层目录

  3.  绝对路径 = 参考路径 + 相对路径

  • 以斜杠开头的相对路径
    •   前台路径:由浏览器解析执行的代码中所包含的路径(html,css,js及jsp中静态部分的路径,ajax)。前台路径的参照路径是web服务器的根路径即http://127.0.0.1:8080(http://localhost/)。将前台路径转化为绝对路径,是由浏览器自动完成的,作用是为用户提交对某种资源的请求,是要查找并定位服务器中某种资源,即查找。
    •   后台路径:由服务器所执行的代码及文件中所包含的路径(java、jsp动态部分,xml等配置文件)。后台路径的参考路径是web应用的根路径,如http://127.0.0.1:8080/+(项目工程名字)。将后台路径转化为绝对路径的工作由服务器完成。其作用是标识该资源在服务器中的路径,以便客户端能够按照这个设定路径来查找相应的资源,即标识。
    •   特例:response.sendRedirect()。若其参数路径为以斜杠开头相对路径,那么这个后台路径是个特例。这是由sendRedirect()的本质决定的:该方法可以跳转到其它项目的资源,所以这个后台路径的参照路径为当前web服务器的根目录。(可以使用request.getContextPath()获取路径。)只有这种重定向的以斜杠开头的相对路径是特例,其它重定向遵循路径转化定理。http://127.0.0.1:8080(http://localhost/)
  • 以名称开头的相对路径(其实是省略了 ./)
    • 无论是出现在前台还是后台,其参照路径都是当前访问路径的资源路径(倒数第一个斜杠/前面的路径)。即使是response.sendRedirect()方法的参数路径,若不以斜杠开头,其也属于以路径名称开头的相对路径,参照路径为当前访问路径的资源路径。web.xml中Servlet的配置<url-pattern></ url-pattern >中的路径只能是以斜杠开头的相对路径,因为它根本不是请求,只是起标识作用,故没有资源路径

         关于tomcat的配置,eclipse访问项目的路径一般是localhost:8080/projectName, 在idea,访问路径默认情况下就变成了localhost:8080,路径没有了后面的项目名。localhost:8080/projectName或者是localhost:8080就是我们平常所说的应用上下文,项目中的路径名都是相对于这个应用上下文来说的。在idea下开发的时候,有时候我们可能需要让访问路径带上项目名,但是idea默认是为每个项目单独配置tomcat的,eclipse是把项目统一放到某个配置好的tomcat中,所以默认配置的不同会导致访问路径的差别(这个要重点理解)。

     参考地址链接:https://www.cnblogs.com/Libinkai/p/9376353.html

猜你喜欢

转载自www.cnblogs.com/420ITboy/p/13364768.html