zoukankan      html  css  js  c++  java
  • JavaWeb 之 web项目中的路径问题

    一、web 中的相对路径和绝对路径

      在 JavaWeb 中,路径分为相对路径和绝对路径两种:

      1、相对路径

        相对路径就是指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。

    .                                表示当前目录

    ../                              表示上一级目录

    资源名                       表示当前目录/资源名

      2、绝对路径

        绝对路径是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径。(一般都是以"/"斜杠开头的)

        HTML中的绝对路径(Absolute path)指带域名的文件的完整路径。

        Web中的绝对路径:指带请求协议的路径,根据给出的请求路径可以准确定位到资源的路径,绝对路径=参照路径+相对路径

    格式:http://ip:port/工程路径/资源路径

        注意:在实际开发中,路径都使用绝对路径,而不是使用相对路径。

           使用绝对路径的两种方式:

            ① 直接使用绝对路径;

            ② 也可以使用 <base>标签(参照路径)+ 相对路径 的方式               

    二、web 中 "/" 的意义

      在 Web 项目中 /(斜杠) 是一种 绝对路径

      1、/ 斜杠被浏览器解析

             /(斜杠) 如果被浏览器解析,代表着当前服务器的路径

    地址格式:http://ip:port                                  http://主机地址:端口号[到服务器]

        有下面几种情况都是由浏览器解析的:

         (1)html中的路径,如:

            ① img 标签和script标签的 src 的属性;

            ② a标签和link标签的 href 属性; 

            ③ from标签的 action属性;

         (2)重定向

            response.sendRediect(“/”);                把斜杠发送给浏览器解析,得到 http://ip:port/

      2、/ 斜杠被服务器解析

        /(斜杠) 如果被服务器解析,代表着当前项目的路径

    地址格式是: http://ip:port/工程路径                 http://主机地址:端口号/项目名[到项目]

        以下几种情况都是由服务器解析的:

        (1)web.xml 中的设置,如 <url-pattern>/servlet1</url-pattern>
        (2)servletContext.getRealPath(“/”);      得到当前项目的真实路径
        (3)request.getRequestDispatcher(“/”); (请求转发)
      

      总结:  
      (1)带斜杠的放在配置文件和Java代码中的路径为后台路径(后台路径的参照路径是web应用的根,例如http://127.0.0.1:8080/ServletDemo)
           (2)带斜杠的放在 JSP 前台页面的前台路径(其参照路径是服务器的根,http://localhost:8080)
           (3)没有以斜杠开头的路径,其参照路径就是当前的访问路径

      (4)<base href="<%=basePath%>"> base标签会自动在当前页面的不以斜杠开头的路径前加上 basepath 的路径(即web项目的路径),使其变为绝对路径

      IDEA 中JavaWeb项目目录结构:

      

    三、Base 标签的作用

        base标签是HTML语言中的基准网址标记,它是一个单标签,位于网页头部文件的head标签内,Title标签下面,一个页面最多只能使用一个base元素,用来提供一个指定的默认目标,也算是一种表达路径和连接网址的标记。

      

        通俗的说,base 标签可以设置当前页面中所有相对路径工作时,让相对路径不再参考相对位置,只和基准地址拼接,然后来进行跳转。(注意:是相对路径的参照,对绝对路径无效

        常见的 url 路径形式分别有相对路径与绝对路径,如果 base 标签指定了目标,浏览器将通过这个目标来解析当前文档中的所有相对路径,包括的标签有(a、img、link、form)。

        也就是说,浏览器解析时会在路径前加上base给的目标,而页面中的相对路径也都转换成了绝对路径。

        格式:

    <base href="http://localhost:8080/项目路径/ ">

    <base href="/项目路径/" >

        注意:base 后面的最后一个 /(斜杠) 不能省略,因为它表示一个目录,如果省略了,就代表一个资源。    

      使用了base标签就应带上href属性和target属性。

      1、base的 href属性

        比如由base制定了一个URL地址,接下来你所要调用的文件或图片等就无须再填写完整的地址,只需写上该文件名或图片名即可。

      2、base target

        target属性是网页窗口的打开方式,在base标签中设置该属性,那么页面中所有的链接都将遵循这个方式来打开网页,分别有如下几种选择:

     _blank:在新窗口打开链接页面。
     _parent:在上一级窗口中打开链接。
     _self: 在当前窗口打开链接,此为默认值,可以省略。
     _top: 在浏览器的整个窗口打开链接,忽略任何框架。

      注意:<base>标签仅对相对地址有效,对于绝对地址是无效的

     

  • 相关阅读:
    asp.net前台绑定数据和后台绑定数据什么区别
    一个页面多个input 按钮 如何回车控制
    (转)Asp.net中Application Session Cookie ViewState Cache Hidden 区别
    url传值IE6浏览器传值后台读取为乱码
    checkbox实现单选多选
    webconfig和appconfig中出现特殊字符如何处理
    WINCE上遇到空间不足问题
    MessageBox知多少

    for循环之删除注意细节
  • 原文地址:https://www.cnblogs.com/niujifei/p/12434506.html
Copyright © 2011-2022 走看看