精华内容
下载资源
问答
  • 所以想要更好的书写规范有用的路径代码 需要对路径有一个清晰地认知路径基本上分三类客户端路径服务端路径其他路径相关的操作类型超链接表单重定向转发包含ServletContext获取资源Class获取资源ClassLoader获取资源...

    javaweb项目中有很多场景的路径

    客户端的POST/GET请求,服务器的请求转发,资源获取需要设置路径等

    这些路径表达的含义都有不同,所以想要更好的书写规范有用的路径代码 需要对路径有一个清晰地认知

    路径基本上分三类

    客户端路径

    服务端路径

    其他

    路径相关的操作类型

    超链接

    表单

    重定向

    转发

    包含

    ServletContext获取资源

    Class获取资源

    ClassLoader获取资源

    客户端路径

    超链接/表单/重定向都是客户端路径客户端路径形式上可以分为三种方式:- 绝对路径;

    以“/”开头的相对路径;

    不以“/”开头的相对路径;

    超链接/表单

    比如:

    6b9ac26878040d10c213349205076dd2.png

    http://127.0.0.1:8080/servlet/NewFile.jsp

    绝对路径:

    链接1

    以“/”开头的相对路径:

    链接2

    相对路径:

    链接3


    绝对路径:

    以“/”开头的相对路径:

    相对路径:

    链接1和表单1:没什么可说的,它使用绝对路径;链接2和表单2:以“/”开头,相对主机,与当前jsp页面的主机相同即最终访问的页面为http://localhost:8080/servlet/ServletB;链接3和表单3:不以“/”开头,相对当前页面的路径,即页面jsp所有的路径即最终访问的路径为:http://localhost:8080/servlet/ServletB;

    重定向

    两种形式带/开头的 相对路径不带/开头的 相对路径ServletA中

    response.sendRedirect("/servlet/ServletB");

    http://127.0.0.1:8080/servlet/ServletA因为路径以“/”开头,所以相对当前主机http://127.0.0.1:8080/servlet/ServletBServletA中

    response.sendRedirect("ServletB");

    相对于当前ServletA的路径当前ServletA的路径为http://127.0.0.1:8080/servlet/所以请求的是:http://127.0.0.1:8080/servlet/ServletB上面的例子如果写成

    response.sendRedirect("/ServletB");

    将是相对于主机http://127.0.0.1:8080/ServletB 就找不到了

    dd33722d77b5cd7ee4811fb7d59b20ce.png

    强烈建议使用“/”开头的路径,这说明在页面中的超链接和表单都要以“/”开头后面是当前应用的名称,再是访问路径/servlet/ServletB在Servlet中的重定向也建议使用“/”开头,同理,也要给出应用的名称应用名称可以使用request.getContextPath()获取

    response.sendRedirect(request.getContextPath() + "/BServlet");

    服务端路径

    请求转发 请求服务器端路径必须是相对路径,不能是绝对路径。但相对路径有两种形式以“/”开头;不以“/”开头;

    其中请求转发、请求包含都是服务器端路径 request.getRequestDispatcher()的参数

    服务器端路径与客户端路径的区别是:- 客户端路径以“/”开头:相对当前主机;

    服务器端路径以“/”开头:相对当前应用;

    例如ServletA中

    request.getRequestDispatcher("/BServlet").forward(request, response);

    相对于ServletA http://127.0.0.1:8080/servlet/ServletA 的当前应用 http://127.0.0.1:8080/servlet也就是http://127.0.0.1:8080/servlet/BServlet如果是

    request.getRequestDispatcher("BServlet").forward(request, response);

    那么则是相对于当前路径相对于ServletA http://127.0.0.1:8080/servlet/ServletA 的当前路径 http://127.0.0.1:8080/servlet/也就是http://127.0.0.1:8080/servlet/BServlet例子不是很明显,因为只有一层路径,应用名下面就是ServletB了 可以再多加一层路径尝试比如:假设访问AServlet的路径为:http://localhost:8080/hello/servlet/AServlet因为路径不以“/”开头,所以相对当前应用,即http://localhost:8080/hello/servlet/BServlet。

    其他

    url-pattern

    必须使用“/”开头,并且相对的是当前应用。

    ServletContext获取资源

    必须是相对路径,可以“/”开头,也可以不使用“/”开头,但无论是否使用“/”开头都是相对当前应用路径

    String path1 = this.getServletContext().getRealPath("a.txt");

    String path2 = this.getServletContext().getRealPath("/a.txt");

    path1和path2是相同的结果

    Class获取资源

    import java.io.InputStream;

    public class Demo {

    public void fun1() {

    InputStream in = Demo.class.getResourceAsStream("/a.txt");

    }

    public void fun2() {

    InputStream in = Demo.class.getResourceAsStream("a.txt");

    }

    }

    其中fun1()方法获取资源时以“/”开头,那么相对的是当前类路径,即/应用名/WEB-INF/classes/a.txt文件;其中fun2()方法获取资源时没有以“/”开头,那么相对当前Demo.class所在路径,因为Demo类在com.test 包下,所以资源路径为:/应用名/WEB-INF/classes/com/test/a.txtClass获取资源也必须是相对路径,可以“/”开头,也可以不使用“/”开头。以“/”开头,那么相对的是当前类路径,即/应用名/WEB-INF/classes/没有以“/”开头,那么相对当前.class所在路径,因为类一般都在包下面比如com.demo所以/应用名/WEB-INF/classes/...包路径.../

    ClassLoader获取资源

    ClassLoader获取资源也必须是相对路径,可以“/”开头,也可以不使用“/”开头。但无论是否以“/”开头,资源都是相对当前类路径。

    public class Demo {

    public void fun1() {

    InputStream in = Demo.class.getClassLoader().getResourceAsStream("/a.txt");

    }

    public void fun2() {

    InputStream in = Demo.class.getClassLoader().getResourceAsStream("a.txt");

    }

    }

    fun1()和fun2()方法的资源都是相对类路径,即classes目录,即/应用名/WEB-INF/classes/a.txt

    展开全文
  • 客户端的POST/GET请求,服务器的请求转发,资源获取需要设置路径等 这些路径表达的含义都有不同,所以想要更好的书写规范有用的路径代码 需要对路径有一个清晰地认知 路径基本上分三类 客户端路径 服务端路径 其他 ...

    javaweb项目中有很多场景的路径
    客户端的POST/GET请求,服务器的请求转发,资源获取需要设置路径等
    这些路径表达的含义都有不同,所以想要更好的书写规范有用的路径代码 需要对路径有一个清晰地认知

    路径基本上分三类

    • 客户端路径
    • 服务端路径
    • 其他

     

    路径相关的操作类型

    • 超链接
    • 表单
    • 重定向
    • 转发
    • 包含
    • <url-pattern>
    • ServletContext获取资源
    • Class获取资源
    • ClassLoader获取资源

    客户端路径

    超链接/表单/重定向   都是客户端路径

    客户端路径形式上可以分为三种方式

    • 绝对路径;
    • 以“/”开头的相对路径;
    • 不以“/”开头的相对路径;

     

    超链接/表单

    比如:

    image_5b68eaae_29dc

    http://127.0.0.1:8080/servlet/NewFile.jsp

    绝对路径:
    <a href="http://127.0.0.1:8080/servlet/ServletA">链接1</a> 
    
    以“/”开头的相对路径:
    <a href="/servlet/ServletB">链接2</a> 
    
    相对路径:
    <a href="ServletB">链接3</a>
    <hr />
    
    绝对路径:
    <form action="http://127.0.0.1:8080/servlet/ServletA">
    <input type="submit" value="表单1" />
    </form>
    
    以“/”开头的相对路径:
    <form action="/servlet/ServletB">
    <input type="submit" value="表单2" />
    </form>
    
    相对路径:
    <form action="ServletB">
    <input type="submit" value="表单3" />
    </form>

     

    链接1和表单1:没什么可说的,它使用绝对路径;

    链接2和表单2:以“/”开头,相对主机,与当前jsp页面的主机相同

    即最终访问的页面为http://localhost:8080/servlet/ServletB;

    链接3和表单3:不以“/”开头,相对当前页面的路径,即页面jsp所有的路径

    即最终访问的路径为:http://localhost:8080/servlet/ServletB;

     

    重定向

    两种形式

    带/开头的  相对路径

    不带/开头的 相对路径

     

    ServletA中

    response.sendRedirect("/servlet/ServletB");

    http://127.0.0.1:8080/servlet/ServletA

    因为路径以“/”开头,所以相对当前主机

    http://127.0.0.1:8080/servlet/ServletB

     

    ServletA中

    response.sendRedirect("ServletB");

    相对于当前ServletA的路径

    当前ServletA的路径为http://127.0.0.1:8080/servlet/

    所以请求的是:

    http://127.0.0.1:8080/servlet/ServletB

    上面的例子如果写成  

    response.sendRedirect("/ServletB");

    将是相对于主机http://127.0.0.1:8080/ServletB   就找不到了

    image_5b68eaae_3f17

     

    强烈建议使用“/”开头的路径,这说明在页面中的超链接和表单都要以“/”开头

    后面是当前应用的名称,再是访问路径

    /servlet/ServletB

    在Servlet中的重定向也建议使用“/”开头,同理,也要给出应用的名称

    应用名称可以使用request.getContextPath()获取

    response.sendRedirect(request.getContextPath() + "/BServlet");

     


     

    服务端路径

    请求转发 请求

    服务器端路径必须是相对路径,不能是绝对路径。但相对路径有两种形式

    以“/”开头;

    不以“/”开头;

     

    其中请求转发、请求包含都是服务器端路径
    request.getRequestDispatcher()的参数

     

    服务器端路径与客户端路径的区别是:

    • 客户端路径以“/”开头:相对当前主机;
    • 服务器端路径以“/”开头:相对当前应用;

    例如

    ServletA中

     

    request.getRequestDispatcher("/BServlet").forward(request, response);

     

    相对于ServletA      http://127.0.0.1:8080/servlet/ServletA  的当前应用   http://127.0.0.1:8080/servlet

    也就是http://127.0.0.1:8080/servlet/BServlet

     

    如果是

    request.getRequestDispatcher("BServlet").forward(request, response);

    那么则是相对于当前路径 

    相对于ServletA      http://127.0.0.1:8080/servlet/ServletA  的当前路径   http://127.0.0.1:8080/servlet/

    也就是http://127.0.0.1:8080/servlet/BServlet

    例子不是很明显,因为只有一层路径,应用名下面就是ServletB了  可以再多加一层路径尝试

    比如:

    假设访问AServlet的路径为:http://localhost:8080/hello/servlet/AServlet

    因为路径不以“/”开头,所以相对当前应用,即http://localhost:8080/hello/servlet/BServlet。

     

     


     

    其他

    url-pattern


    <url-pattern>必须使用“/”开头,并且相对的是当前应用。

     

    ServletContext获取资源

    必须是相对路径,可以“/”开头,也可以不使用“/”开头,但无论是否使用“/”开头都是相对当前应用路径

    String path1 = this.getServletContext().getRealPath("a.txt");
    String path2 = this.getServletContext().getRealPath("/a.txt");

    path1和path2是相同的结果

     

    Class获取资源

    import java.io.InputStream;
    public class Demo {
    public void fun1() {
      InputStream in = Demo.class.getResourceAsStream("/a.txt");
    }
    
    public void fun2() {
      InputStream in = Demo.class.getResourceAsStream("a.txt");
    }
    }

     

    其中fun1()方法获取资源时以“/”开头,那么相对的是当前类路径,即   /应用名/WEB-INF/classes/a.txt文件;

    其中fun2()方法获取资源时没有以“/”开头,那么相对当前Demo.class所在路径,

    因为Demo类在com.test 包下,所以资源路径为:/应用名/WEB-INF/classes/com/test/a.txt

     

    Class获取资源也必须是相对路径,可以“/”开头,也可以不使用“/”开头。

    以“/”开头,那么相对的是当前类路径,即  /应用名/WEB-INF/classes/

    没有以“/”开头,那么相对当前.class所在路径,因为类一般都在包下面比如com.demo

    所以/应用名/WEB-INF/classes/...包路径.../

     

    ClassLoader获取资源

    ClassLoader获取资源也必须是相对路径,可以“/”开头,也可以不使用“/”开头。

    但无论是否以“/”开头,资源都是相对当前类路径。

    public class Demo {
    public void fun1() {
    InputStream in = Demo.class.getClassLoader().getResourceAsStream("/a.txt");
    }
    
    public void fun2() {
    InputStream in = Demo.class.getClassLoader().getResourceAsStream("a.txt");
    }
    }

    fun1()和fun2()方法的资源都是相对类路径,即classes目录,即/应用名/WEB-INF/classes/a.txt

     

     

    展开全文
  • 语法:URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。 URL语法:protocol://hostname[:port]/path/[;parameters][?query]#fragment protocol(协议) 指定使用的传输协议: file资源是本地计算机...

    语法:URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。

    URL语法:protocol://hostname[:port]/path/[;parameters][?query]#fragment

    protocol(协议)

    指定使用的传输协议:

    file资源是本地计算机上的文件。格式:file:///,注意后面应该是三个斜杠。

    ftp通过ftp访问资源。格式FTP://

    http通过HTTP访问资源。格式HTTP://

    https通过安全的https访问资源。格式HTTPS://

    hostname(主机名)

    是指存放资源的服务器的域名系统(DNS)主机名或IP地址。

    port(端口号)

    可选,省略时使用方案的默认端口,各种传输协议都有默认端口;

    path(路径)

    由零或多个“/”符合隔开的字符串,一般用来表示主机上的一个目录或文件地址。

    parameters(参数)

    这是用于指定特殊参数的可选项。

    query(查询)

    可选,用于给动态网页传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开

     

    展开全文
  • 如何定位url路径资源

    2021-03-27 14:32:35
    如何定位url路径资源 什么是url? URL是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。 如何定位url路径资源?...这样就可以定位url资源

    如何定位url路径资源

    什么是url?
    URL是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。
    如何定位url路径资源?
    url由以下几部分组成:
    1.协议类型(http、https)——http加锁->https
    2.主机IP(或localhost)加端口号——IP唯一标识一台主机;端口号唯一标识一个进程
    3.主机资源的具体地址——资源(文件)路径(绝对路径或相对路径)
    基本格式:
    协议://主机IP:端口号/资源路径
    这样就可以定位url资源了。

    展开全文
  • URL地址解析

    2017-10-18 10:47:00
    URL的一般格式为(带方括号[]的为可选项): protocol :// hostname[:port] / path /[?query]#fragment 1、protocol :// 为传输协议类型,一般为http://或者https:// 2、hostname 为域名或者IP,用来指向存放资源的...
  • HTTP使用统一资源标识符...URL是一种特殊类型的URI,包含用于查找某个资源的足够信息。 URL: 统一资源定位符(Uniform Resource Locator,URL)是互联网上用来标识某一处资源地址;以下URL为例子做介绍: ...
  • 什么是url地址

    2016-05-20 15:52:33
    URL(Uniform Resoure Locator:统一资源定位器)是WWW页的地址,它从左到右由下述部分组成: 1. ·Internet资源类型(scheme):指出WWW客户程序用来操作的工具。 如“http://”表示WWW服务器,“ftp://”表示...
  • url地址格式的小结

    千次阅读 2017-05-04 17:54:50
    原文地址:http://blog.csdn.net/beibei0921/article/details/48211235 在WWW上,每一信息资源都有统一且在网上唯一的地址,该...URL由三部分组成:资源类型、存放资源的主机域名、资源文件名,URL的一般语法格式
  • 关于URL地址的解释,让你深入了解URL

    万次阅读 多人点赞 2018-02-10 19:37:24
    一个完整的网址,例如:http://www.crazyit.org/index.jsp/index.php,遵守如下语法规则:scheme://host.domain:port/path/filename关于URL地址的解释 :scheme:指定因特网服务的类型。最流行的类型是...
  • URL 统一资源定位符

    千次阅读 2014-10-24 10:40:07
    URL(Uniform Resoure Locator 统一资源定位器)是WWW网页的地址,好比一个街道在城市地图上地址url使用数字和字母按一定顺序排列以确定一个地址URL的第一个部分http://表示的是要访问的文件的类型。在网上,...
  • 这个维基百科上有翻译。URL:Uniform Resource Locator,统一...格式为:[协议类型]://[访问资源需要的凭证信息]@[服务器地址]:[端口号]/[资源层级UNIX文件路径][文件名]?[查詢]#[片段ID]比如这个问题,URL 是https...
  • 什么是URL地址

    千次阅读 2015-11-30 12:46:25
    URL(Uniform Resource Locator:统一资源定位器)是WWW页的地址,它从左到右由下述部分组成:  ·Internet资源类型(scheme):指出WWW客户程序用来操作的工具。如“http://”表示WWW服务器,“ftp://”表示...
  • URL - 统一资源定位器

    2020-12-11 18:36:01
    URL - 统一资源定位器 Web浏览器通过URL从Web服务器请求页面。 当您点击 HTML 页面中的某个链接时,对应的 <a> 标签指向万维网上的一个地址。 一个统一资源定位器(URL) 用于定位万维网上的文档。 一个网页...
  • url的命名规则:url可是域名或者IP地址 url="shceme:host.域名:端口号/服务器上的路径/文档名字" shceme:因特网服务类型,http是超文本传输、https是安全超文本传输; host:域主机名,http一般默认是www;...
  • URL(统一资源定位符)

    千次阅读 2017-08-24 20:24:36
    如果想得到某个资源,这时候就需要知道该资源在互联网中的唯一的地址,也就是统一的资源定位符(URL)。统一资源定位符(URL)标准格式如下: 协议类型:[//服务器地址[:端口号]][/路径]文件名[?查询][#片段]1、传送...
  • URL(统一资源定位符)

    2018-10-07 22:32:30
    统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。 scheme:...
  • 网页地址实例:http://www.w3cschool.cc/html/html-tutorial.html 语法规则: scheme://host.domain:port/path/filename 说明: 1、scheme——定义因特网服务的类型,最常见的类型是http 2、host——定义域主机...
  • 统一资源定位符URL(Uniform Resource Locator)是www客户机访问Internet时用来标识资源的名字和地址。超文本链路由统一资源定位符URL维持。URL的格式是: ://// 协议类型://服务器地址(必要时需加上端口号)/路径/...
  • URL

    2016-07-20 13:10:00
    url 定义:在WWW上,每一信息资源都有统一的且在网上唯一的地址...URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。 URL的一般语法格式为:(带方括号[]的为可选项): protocol :// hostname[:por...
  • URL 统一资源定位符(Uniform Resource Locator),其实就是我们访问web页面时需要输入的”网页地址“”网址“,比如:https://www.google.com/ 就是URL。 完整定义如下: 协议类型 : // 登录信息(认证) @ ...
  • URLURL

    多人点赞 2019-03-23 16:32:10
    URL正是使用 Web 浏览器等访问 Web 页面时需要输入的网页地址 URI 用字符串标识某一互联网资源,而 URL表示资源的地点(互联 网上所处的位置)。可见 URL是 URI 的子集。 URL格式 协议 使用 http: 或 https: 等...
  • URL 是统一的,因为它们采用相同的基本语法,无论寻址哪种特定类型资源(网页、新闻组)或描述通过哪种机制获取该资源。 什么是IP地址 所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。 按照TCP...
  •  1、WEB客户端和服务器。... URL的第一部分称为方案:说明访问资源所使用的协议类型。通常就是HTTP协议。  URL的第二部分给出了服务器的因特网地址。  其他部分指定了服务器上的资源路径。目前,几乎所有的UR...
  • ​ URL 统一资源定位符(Uniform Resource Locator):其实就是我们访问web页面时需要输入的”网页地址“”网址“,比如:https://www.google.com/ 就是URL。  完整定义如下:  协议类型: //登录信息(认证)@服务器...
  • 关于URL和URI区别:URL(Uniform REsource Locator), 统一资源定位符.... 用于确定一个资源, 但不一定指出资源地址.URI = URL + RUN(Uniform Resource Name), URI由这两部分组成 强制类型转换和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 813
精华内容 325
关键字:

url资源地址类型