URL和URI的区别

合集下载

JAVA网络编程-URL和URI

JAVA网络编程-URL和URI

JAVA⽹络编程-URL和URIURL类public static void main(String[] args) throws Exception {//构造URLURL u1 = new URL("/zumengjie/p/14959200.html");URL u2 = new URL("http","","/zumengjie/p/14959200.html");URL u3 = new URL("http","",80,"/zumengjie/p/14959200.html");URL u4 = new URL(u3,"14945701.html");}public static void main(String[] args) {//从URL获取流读取其内容(假设内容是⽂本)try {URL u1 = new URL("https:///zumengjie/p/14959200.html");try (BufferedReader br = new BufferedReader(new InputStreamReader(u1.openStream()))) {String s = null;while ((s = br.readLine()) != null) {System.out.println(s);}}} catch (Exception e) {System.out.println(e);}}public static void main(String[] args) {//通过设置代理或不设置代理的⽅式获取URLConnection,这个对象可以获取URL中更多的选项。

try {URL u1 = new URL("https:///zumengjie/p/14959200.html");URLConnection oc = u1.openConnection();//u1.openConnection(Proxy proxy);设置代理//oc.getOutputStream();//oc.getContentEncoding();//oc.getContentType();//....InputStream stream = oc.getInputStream();try (BufferedReader br = new BufferedReader(new InputStreamReader(stream))) {String s = null;while ((s = br.readLine()) != null) {System.out.println(s);}}} catch (Exception e) {System.out.println(e);}}public static void main(String[] args) {//getContent()的做法是,在从服务器获取的数据⾸部中查找Content-type字段,如果服务器没有使⽤MIME⾸部//或发送了⼀个不熟悉的Content-type,getContent()会返回某种InputStream。

http协议

http协议

http协议Http即超⽂本传输协议(英⽂:HyperText Transfer Protocol,缩写:HTTP),⽤来在⽹页间传输超⽂本的⼀种协议。

在这⾥需要了解三个内容:1、html;2、URL;3、http。

1、HTML(HyperText Markup Language),超⽂本标记语⾔;2、URI,统⼀资源标识符,互联⽹上所有的资源都有其唯⼀的URI;3、HTTP,超⽂本传输协议。

在开始http真正的内容之前,我们还需要了解⼀下什么是uri、url以及urn。

因为我们⼏乎所有的http请求都是通过url来完成的。

URI(Uniform Resource Identifier)统⼀资源标志符,是⼀个⽤于标识某⼀互联⽹资源名称的字符串。

HTTP使⽤统⼀资源标识符(Uniform Resource Identifiers, URI)来建⽴连接和传输数据。

URL(Uniform Resource Locator)统⼀资源定位符,如同在⽹络上的门牌,是因特⽹上标准的资源的地址,它是⼀种特殊类型的URI,包含了⽤于查找某个资源的⾜够的信息。

URN(Uniform Resource Name),期望为资源提供持久的、位置⽆关的标识⽅式,并允许简单地将多个命名空间映射到单个URN命名空间。

②域名部分:该URL的域名部分为。

⼀个URL中,也可以使⽤IP地址作为域名使⽤。

③端⼝部分:跟在域名后⾯的是端⼝,域名和端⼝之间使⽤:作为分隔符。

端⼝不是⼀个URL必须的部分,如果省略端⼝部分将采⽤默认端⼝。

④虚拟⽬录部分:从域名后的第⼀个/开始到最后⼀个/为⽌是虚拟⽬录部分。

本例中的虚拟⽬录是/news/。

⑤⽂件名部分:从域名后的最后⼀个/开始到?为⽌是⽂件名部分,如果没有?,则是从域名后的最后⼀个/开始到#为⽌,如果没有?和#,那么从域名后的最后⼀个/开始到结束都是⽂件名部分。

本例中的⽂件名是index.asp。

最详细的http协议、tcpip协议(转)

最详细的http协议、tcpip协议(转)

最详细的http协议、tcpip协议(转)最详细的http协议、tcp/ip协议(转⾃头条号猪哥亮额)图解传说中的HTTP协议先扒⼀扒HTTP协议背景?HTTP(HyperText Transfer Protocol) 即超⽂本传输协议,现在基本上所有web项⽬都遵从HTTP协议(协议就是⼀种⼈为的规范)。

⽬前绝⼤部分使⽤的都是HTTP/1.1版本(1.0太⽼,2.0仍在制订中。

)。

因为HTTP协议是属于TCP/IP协议簇的,所以先简单介绍下与HTTP相关的TCP/IP知识。

TCP/IP简介。

TCP/IP是⼀个协议簇,是由许多协议组成的。

TCP/IP四层模型。

TCP/IP按照层次从上⾄下分为四层:应⽤层,传输层,⽹络层,数据链路层。

(实际上最初理论上OSI模型是分的七层,我们程序猿的话通常只⽤分四层就⾏了。

)1. 应⽤层:应⽤层决定了向⽤户提供应⽤服务时通信的活动。

TCP/IP协议族内预存了各类通⽤的应⽤服务。

⽐如,FTP(File Transfer Protocol,⽂件传输协议)和DNS(Domain Name System,域名系统)服务就是其中两类。

HTTP协议也处于该层。

1. 传输层:传输层对上层应⽤层,提供处于⽹络连接中的两台计算机之间的数据传输。

在传输层有两个性质不同的协议:TCP(Transmission ControlProtocol,传输控制协议)和UDP(User Data Protocol,⽤户数据报协议)。

1. ⽹络层:⽹络层⽤来处理在⽹络上流动的数据包。

数据包是⽹络传输的最⼩数据单位。

该层规定了通过怎样的路径(所谓的传输路线)到达对⽅计算机,并把数据包传送给对⽅。

与对⽅计算机之间通过多台计算机或⽹络设备进⾏传输时,⽹络层所起的作⽤就是在众多的选项内选择⼀条传输路线。

1. 链路层(⼜名数据链路层,⽹络接⼝层):⽤来处理连接⽹络的硬件部分。

包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,⽹络适配器,即⽹卡),及光纤等物理可见部分(还包括连接器等⼀切传输媒介)。

uri的常用字符

uri的常用字符

uri的常用字符
URI(Uniform Resource Identifier)是一种用于标识抽象或物理资源的字符串,常用于Web中的URL(Uniform Resource Locator)。

URI中常用的字符包括ASCII字符集中的大写字母、小写字母、阿拉伯数字、连字符(-)、句号(.)、下划线(_)和波浪号(~)。

这些字符在URI中都有特定的含义和用途。

例如,连字符(-)和下划线(_)常被用作分隔符,用于区分URI中的不同部分,如子域名、路径等。

句号(.)则常用于表示文件或目录的层次结构。

波浪号(~)在某些情况下用于表示用户的主目录。

需要注意的是,URI中不允许使用某些ASCII字符,如空格、特殊符号等。

这些字符在URI中需要进行编码转换,通常使用百分号编码(Percent Encoding)的方式,将不允许的字符转换成特定的字符串形式。

例如,空格在URI中需要被编码为"%20"。

总的来说,URI的常用字符是ASCII字符集中的一部分,这些字符在URI中扮演着重要的角色,用于标识和描述资源。

同时,为了确保URI的正确性和可读性,需要避免使用不允许的字符,并对必要的字符进行编码转换。

信息网络环境标识、描述及表达

信息网络环境标识、描述及表达

【解析和实现的困难】
URN与位置无关 需要一种附加机制把简单的URN标识字符串转换为一个特定的位置和 访问方法----URN解析
3
2011描述及表达
‐‐‐‐‐‐‐‐‐‐‐‐静态页面与HTML
Start Here
静态页面
标记语言
目录概要
内容
总结练习
HTML
功能非常强大,但是非常复杂
HTML
XHTML
HTML概述
【HTML】
HypertextMarkupLanguage(超文本标记语言) Web主要组件之一,1990年由Web的创建者TimBerners-Lee发明 是SGML的具体应用 定义了一个文本代码的完整集合,用于描述文档如何显示给用户 格式化文本的 指令 交互的形式 如何展现文档 携带的图像和 其他媒体 显示表格数据 的方法
访问的方法,描 述资源的使用方 法,通常指一个 应用程序协议, 或资源类型 标识具体资源 各种不同协议和访问 方法需要不同的类型 和数量信息来标识一 个特定的资源
1
2011/12/26
URL
【URL通用语法】
<纲要>://<用户>:<密码>@<主机>:<端口>/<url路径>;<参数>?< 查询>#<分片>
【本地文件语法】
file://<主机>:<url路径> file:///<url路径>
URN
【URL的问题】
基于位置来描述资源 资源和它的位置不是同一个事物 一个特定资源受欢迎,希望在多个位置复制同一个资源
HTTP404---NOT FOUND

电信java面试题

电信java面试题

电信java面试题Java作为一门广泛应用于软件开发领域的编程语言,在电信行业也扮演着重要的角色。

随着技术的不断发展,对于具备Java开发能力的人才需求也日益增长。

在电信行业的Java面试过程中,通常会涉及到以下几个主题:Java基础知识、数据结构与算法、多线程与并发、网络编程、数据库操作、框架应用以及设计模式。

以下将结合这些主题,为大家总结一些常见的电信Java面试题。

一、Java基础知识1. 什么是Java的基本数据类型?请列举并简要描述各个基本数据类型的特点。

答:Java的基本数据类型包括byte、short、int、long、float、double、boolean和char。

它们分别表示字节、短整数、整数、长整数、单精度浮点数、双精度浮点数、布尔值和字符。

不同的基本数据类型在内存占用和取值范围上有所不同。

2. 请简要介绍Java中的面向对象编程特点。

答:Java是一种面向对象的编程语言,它具有封装、继承和多态的特点。

封装可以将数据和方法封装在类中,保证了数据的安全性和灵活性;继承允许派生类继承父类的属性和方法,并可以通过重写和重载对其进行扩展和修改;多态可以通过不同的方式调用相同的方法,提高代码的可读性和扩展性。

二、数据结构与算法1. 请简要介绍Java中的常用数据结构。

答:Java中常用的数据结构包括数组、链表、栈、队列、堆、树、图等。

这些数据结构可以根据需要选择使用,各自具有不同的特点和适用场景。

2. 请介绍一下二叉树的遍历方式。

答:二叉树的遍历方式有三种:前序遍历、中序遍历和后序遍历。

前序遍历先访问根节点,然后递归地遍历左子树和右子树;中序遍历先递归地遍历左子树,然后访问根节点,最后遍历右子树;后序遍历先递归地遍历左子树和右子树,最后访问根节点。

三、多线程与并发1. 请简要介绍Java中的线程同步机制。

答:Java中的线程同步机制包括synchronized关键字和Lock接口。

HTTP协议详细总结

HTTP协议详细总结HTTP超⽂本传输协议,是WWW上应⽤的最多的协议。

了解和掌握HTTP协议是对程序⼈员的基本要求。

⼀、HTTP介绍 HTTP是⼀个基于请求/响应模式的、⽆状态的协议。

即,浏览器与服务端连接之后,浏览器向服务器发送⼀个请求,服务器返回响应信息之后,双⽅的链接就被关闭。

我们要知道,应⽤层的HTTP要使⽤传输层的TCP协议来完成。

⽽TCP协议是通过“3次握⼿”建⽴连接,是⾯向连接的协议。

默认情况下,浏览器与Web服务器上80端⼝监听的服务器程序建⽴TCP连接。

HTTP1.0是典型的请求/响应模式。

为了减少服务器的开销,HTTP1.1默认有“持续连接”的机制。

通过这种机制,客户端发送请求得到响应后,连接不会马上关闭,可以继续发送请求,还可以流⽔线发送多个请求、⽽不⽤等待每⼀个响应的到来。

⼆、URI和URL URI(统⼀资源标识符)纯粹是⼀种符号结构,⽤于指定构成Web资源的字符串的各个不同部分。

⽽URL(统⼀资源定位符)是⼀种特殊的URI,包含了⽤于查找某个资源的⾜够信息。

URI是⼀种语义上的抽象概念,可以是绝对的,也可以是相对的,⽽URL则必须提供⾜够的信息来定位,所以,是绝对的,⽽通常说的relative URL,则是针对另⼀个absolute URL,本质上还是绝对的。

三、HTTP请求格式如图:(CRLF表⽰回车符+换⾏符,不同颜⾊之间⽤空格隔开)第⼀⾏叫做请求⾏。

所以我们可以说HTTP请求由请求⾏、消息报头、请求正⽂组成。

1、请求⾏如上,请求⾏以⼀个⽅法符号开头,空格之后,⼀个请求URI,再空格,然后⼀个HTTP版本,最后⼀个回车换⾏。

其中请求⽅法有如下⼏种:我们在浏览器地址栏直接输⼊地址的时候,采⽤的就是GET⽅法。

HEAD⽅法⼀般⽤于测试超链接的有效性,因为它只是请求响应消息的报头。

消息报头后⾯会讲。

(HTTP协议中,请求⽅法必须全部⼤写)2、请求正⽂类似name=XXX&pwd=XXXX的内容四、HTTP响应格式与HTTP请求类似,如图:第⼀⾏叫做状态⾏。

URI

URI URI目录什么是URIURL的使用什么是URI与URN的关系技术观点RFC 3305历史命名、定位与标示资源标准改良与XML命名空间的关系URL的使用什么是URIURL的使用什么是URI与URN的关系技术观点RFC 3305历史命名、定位与标示资源标准改良与XML命名空间的关系URL的使用展开编辑本段什么是URIWeb上可用的每种资源- HTML文档、图像、视频片段、程序等- 由一个通用资源标志符(Uniform Resource Identifier, 简称"URI")进行定位。

URI一般由三部分组成:一、存放资源的主机名。

资源自身的名称,由路径表示。

考虑下面的URI,它表示了当前的HTML4.0规范:http 避开百度://www.避开百度webmonkey.避开百度com.避开百度cn/html/html40/这个URI是这样的:这是一个可通过HTTP协议访问的资源,位于主机www.webmonkey避开百度.com避开百度.cn上,通过路径“/html/html40”访问。

在HTML文档中其它资源包括"mailto"(收发email)和"ftp"(FTP访问)。

这是URI的另一个例子,指向一个用户的邮箱:mailto:joe@someplace避开百度.com注:大多数读者可能熟悉"URL",而不是URI。

URL是URI命名机制的一个子集。

二、片段标志符有的URI指向一个资源的内部。

这种URI以"#"结束,并跟着一个anchor标志符(称为片段标志符)。

例如,下面是一个指向section_2的URI:http避开百度://避开百度somesite避开百度.com/html/top.htm#section_2三、相对URI相对URI不包含任何命名规范信息。

它的路径通常指同一台机器上的资源。

jsp中request的常见使用方法

HttpServletRequestHttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP 请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息request常用方法l获得客户机信息•getRequestURL方法返回客户端发出请求时的完整URL。

•getRequestURI方法返回请求行中的资源名部分。

•getQueryString 方法返回请求行中的参数部分。

•getRemoteAddr方法返回发出请求的客户机的IP地址•getRemoteHost方法返回发出请求的客户机的完整主机名•getRemotePort方法返回客户机所使用的网络端口号•getLocalAddr方法返回WEB服务器的IP地址。

•getLocalName方法返回WEB服务器的主机名•getMethod得到客户机请求方式URL和URI的关系:URI是URL的父类,URI描述资源,URL描述互联网的资源String url = request.getRequestURL().toString();System.out.println(url);System.out.println(request.getRequestURI());System.out.println(request.getQueryString()); System.out.println(request.getRemoteAddr()); System.out.println(request.getRemoteHost()); System.out.println(request.getRemotePort()); System.out.println(request.getMethod());Request常用方法l获得客户机请求头•getHead(name)方法•getHeaders(String name)方法•getHeaderNames方法l获得客户机请求参数(客户端提交的数据) •getParameter(name)方法•getParameterValues(String name)方法•getParameterNames方法•getParameterMap方法 //•getInputStream获取客户机带过来的数据String username = request.getParameter("username"); System.out.println(username);System.out.println("----------------------");Enumeration e = request.getParameterNames();while(e.hasMoreElements()){String name =(String) e.nextElement();String value = request.getParameter(name);System.out.println(name + "=" + value);}System.out.println("----------------------");String values[] =request.getParameterValues("username");for(int i=0;values!=null &&i<values.length;i++){System.out.println(values[i]);}System.out.println("----------------------");//http://localhost:8080/day05/servlet/RequestDemo3?username=aaa&username=bbb&p assword=123Map<String,String[]>map = request.getParameterMap();Set<Map.Entry<String,String[]>> set = map.entrySet();for(Map.Entry<String,String[]> entry : set){username =entry.getKey();values =entry.getValue();for(int i=0;values!=null &&i<values.length;i++){System.out.println(username +"=" + values[i]);}}request常见应用1l防盗链String referer =request.getHeader("referer");if(referer==null ||!referer.startsWith("http://localhost")){response.sendRedirect("/day05/index.html");return;}String data = "凤姐日记";response.setCharacterEncoding("UTF-8");response.setHeader("content-type", "text/html;charset=UTF-8"); response.getWriter().write(data);l各种表单输入项数据的获取•text、password、radio、checkbox、•file、select、textarea、 hidden、•image、button给js编程用package cn.itcast.request;import java.io.IOException;import java.util.Arrays;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;//获取不同类型表单的数据(获取客户机表单提交的数据)public class RequestDemo5 extends HttpServlet {publicvoid doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {System.out.println(request.getParameter("username"));System.out.println(request.getParameter("password"));System.out.println(request.getParameter("gender"));System.out.println(Arrays.asList(request.getParameterValues("like")==null?newString[]{ }:request.getParameterValues("like")));System.out.println(request.getParameter("city"));System.out.println(request.getParameter("resume"));System.out.println(request.getParameter("xx"));String username =request.getParameter("username"); //"" nullif(username==null ||username.trim().equals("")){System.out.println("您没有提交数据");}request.getParameter("gender"); //nullrequest.getParameterValues("like");//null}publicvoid doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}form表单:<!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN"> <html><head><title>form.html</title><meta http-equiv="keywords"content="keyword1,keyword2,keyword3"> <meta http-equiv="description"content="this is my page"><meta http-equiv="content-type"content="text/html; charset=UTF-8"> <!--<link rel="stylesheet"type="text/css" href="./styles.css">--></head><body><form action="/day05/servlet/RequestDemo5"method="post"> 用户名:<input type="text"name="username"><br/>密码:<input type="password"name="password"><br/>性别:<input type="radio"name="gender" value="male">男<input type="radio"name="gender" value="female">女<br/>爱好:<input type="checkbox"name="like" value="basketball">蓝球<input type="checkbox"name="like" value="football">足球<input type="checkbox"name="like" value="java">java<input type="checkbox"name="like" value=".net">.net<br/>所在地:<select name="city"><option value="bj">北京</option><option value="sh">上海</option><option value="cs">长沙</option></select><br/>简历:<textarea rows="5"cols="60" name="resume"></textarea><br/> 大头照:<input type="file" name="image"><br/><input type="hidden"name="xx" value="yyy"><input type="submit" value="提交"></form><form action="/day05/servlet/RequestDemo6"method="get">用户名:<input type="text"name="username"><br/><input type="submit" value="提交"></form><form action="/day05/servlet/RequestDemo7"method="post">用户名:<input type="text"name="username"><br/><input type="submit" value="提交"></form><!-- 超链接后面带中文数据一定要经过url编码 --><a href="/day05/servlet/RequestDemo8?name=方立勋">点点</a></body></html>如果都没有添或选择,输入项默认为空串“”,选择项为NUll所以最好用这种方式进行比较判断:if(username==null ||username.trim().equals("")){l请求参数的中文乱码问题importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;//request的乱码问题:get\postpublic classRequestDemo6 extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponseresponse) throwsServletException, IOException {//以下代码可以解决post提交的乱码request.setCharacterEncoding("UTF-8"); //只对post方式有效//String username1 =request.getParameter("username");//System.out.println(username1);//以下代码可能解决get提交的乱码String username2 =request.getParameter("username");//username2 = newString(username2.getBytes("iso8859-1"),"UTF-8");System.out.println(username2);}public void doPost(HttpServletRequest request,HttpServletResponse response) throwsServletException, IOException {doGet(request,response);}}importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;//思考题 :下面程序有乱码吗????public classRequestDemo7 extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponseresponse) throwsServletException, IOException {request.setCharacterEncoding("UTF-8");String username = request.getParameter("username"); //方立response.setCharacterEncoding("gb2312");response.setContentType("text/html;charset=gb2312");response.getWriter().write(username);}public void doPost(HttpServletRequest request,HttpServletResponse response)throwsServletException, IOException {doGet(request,response);}}l URL地址的编码import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;//超链接提交中文数据在服务器端获取的代码/** <!-- 超链接后面带中文数据一定要经过url编码 --><a href="/day05/servlet/RequestDemo8?name=方立勋">点点</a>**/public class RequestDemo8 extendsHttpServlet {publicvoid doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {Stringname = request.getParameter("name");name= new String(name.getBytes("iso8859-1"),"UTF-8");System.out.println(name);}publicvoid doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}request常见应用2lrequest对象实现请求转发:请求转发指一个web资源收到客户端请求后,通知服务器去调用另外一个web资源进行处理。

基于JAVA文件中获取路径及WEB应用程序获取路径的方法

基于JAVA⽂件中获取路径及WEB应⽤程序获取路径的⽅法1. 基本概念的理解`绝对路径`:你应⽤上的⽂件或⽬录在硬盘上真正的路径,如:URL、物理路径例如:c:/xyz/test.txt代表了test.txt⽂件的绝对路径;`相对路径`:相对与某个基准⽬录的路径,包含Web的相对路径(HTML中的相对⽬录)。

例如:在Servlet中,"/"代表Web应⽤的根⽬录,和物理路径的相对表⽰。

例如:"./"代表当前⽬录,"../"代表上级⽬录。

这种类似的表⽰,也是属于相对路径。

2. 关于JSP/Servlet中的相对路径和绝对路径。

2.1 服务器端的地址其⽤到的地⽅有:`forward:servlet中的request.getRequestDispatcher(address);`这个address是在服务器端解析的,所以,你要forward到a.jsp 应该这么写:2.2 客户端的地址Javascript也是在客户端解析的,所以其相对路径和form表单⼀样。

因此,⼀般情况下,在JSP/HTML页⾯等引⽤的CSS,Javascript,Action等属性前⾯最好都加上webapp应⽤名称,以确保所引⽤的⽂件都属于Web应⽤中的⽬录。

另外,应该尽量避免使⽤类似".","./","../../"等类似的相对该⽂件位置的相对路径,这样当⽂件移动时,很容易出问题。

3. JSP/Servlet中获得当前应⽤的相对路径和绝对路径3.1 JSP中获得当前应⽤的相对路径和绝对路径根⽬录所对应的绝对路径:`request.getRequestURI();`⽂件的绝对路径:`application.getRealPath(request.getRequestURI());`当前web应⽤的绝对路径:`application.getRealPath("/");`取得请求⽂件的上层⽬录:`newFile(application.getRealPath(request.getRequestURI())).getParent();`3.2 Servlet中获得当前应⽤的相对路径和绝对路径根⽬录所对应的绝对路径:`request.getServletPath();`⽂件的绝对路径:`request.getSession().getServletContext().getRealPath();`当前web应⽤的绝对路径:`servletConfig.getServletContext().getRealPath("/");`ServletContext对象获得⼏种⽅式:javax.servlet.http.HttpSession.getServletContext()javax.servlet.jsp.PageContext.getServletContext()javax.servlet.ServletConfig.getServletContext()4. java的Class中获得相对路径,绝对路径的⽅法4.1 单独的Java类中获得绝对路径根据java.io.File的Doc⽂挡,可知:`默认情况下newFile("/")代表的⽬录为:System.getProperty("user.dir");`。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Web上可用的每种资源- HTML文档、图像、视频片段、程序等- 由一个通过通用资源标志符(Universal Resource Identifier, 简称"URI")进行定位。

URI一般由三部分组成:访问资源的命名机制。

存放资源的主机名。

资源自身的名称,由路径表示。

考虑下面的URI,它表示了当前的HTML 4.0规范:/html/html40/这个URI是这样的:这是一个可通过HTTP协议访问的资源,位于主机上,通过路径“/html/html40”访问。

在HTML文档中其它资源包括"mailto"(收发email)和"ftp"(FTP访问)。

这是URI的另一个例子,指向一个用户的邮箱:<A href="Joe'>mailto:joe@">Joe Cool</A>注:大多数读者可能熟悉"URL",而不是URI。

URL是RUI命名机制的一个子集。

片段标志符有的URI指向一个资源的内部。

这种URI以"#"结束,并跟着一个anchor标志符(称为片段标志符)。

例如,下面是一个指向section_2的URI:/html/top.htm#section_2相对URI相对URI 不包含任何命名规范信息。

它的路径通常指同一台机器上的资源。

相对URI可能含有相对路径(如,“..”表示上一层路径),还可能包含片段标志符。

为了说明相对URI,假设我们有一个基本的URI /support/intro.htm 下面的链接中使用了相对URI:<A href="suppliers.htm">Suppliers</A>它扩展成完全的URI就是"/support/suppliers.htm",下面是一个图像的相对URI:<IMG src="../icons/logo.gif" alt="logo">它扩展成完全的URI就是"/icons/logo.gif"。

在HTML中,URI被用来:链接到另一个文档或资源(参看A和LINK元素)。

链接到一个外部样式表或脚本(参看LINK和SCRIPT元素)。

在页内包含图像、对象或applet(参看IMAG、OBJECT、APPLET和INPUT元素)。

建立图像映射(参看MAP和AREA元素)。

提交一个表单(参看FORM)。

建立一个框架文档(参看FRAME和IFRAME元素)。

引用一个外部参考(参看Q、BLOCKQUOTE, INS和DEL元素)。

指向一个描述文档的metadata(参看HEAD元素)。

2.什么是URL:URL是Uniform Resource Location的缩写,译为“统一资源定位符”。

通俗地说,URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。

采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。

◇URL的格式URL的格式由下列三部分组成:第一部分是协议(或称为服务方式);第二部分是存有该资源的主机IP地址(有时也包括端口号);第三部分是主机资源的具体地址。

,如目录和文件名等。

第一部分和第二部分之间用“://”符号隔开,第二部分和第三部分用“/”符号隔开。

第一部分和第二部分是不可缺少的,第三部分有时可以省略。

◇URL示例文件的URL:用URL表示文件时,服务器方式用file表示,后面要有主机IP地址、文件的存取路径(即目录)和文件名等信息。

有时可以省略目录和文件名,但“/”符号不能省略。

例一:file:///pub/files/foobar.txt代表存放主机上的pub/files/目录下的一个文件,文件名是foobar.txt。

例二:file:///pub代表主机上的目录/pub。

例三:file:///代表主机上的根目录。

Gopher的URL:Gopher服务器有可能使用特殊的端口,在这种情况下,主机IP地址与端口之间要用“:隔开。

例一:gopher:///表示主机上的gopher服务器。

例二:gopher://:1234表示主机上的gopher服务器,在端口1234上。

网络新闻的URL:利用URL表示网络新闻组时,如果是usenet的话只要指定出新闻组的名字即可。

例如:news:rec.gardening表示usenet上的rec.gardening新闻组(园艺)。

HTTP的URL:使用超级文本传输协议HTTP,提供超级文本信息服务的资源。

例一:/channel/welcome.htm其计算机域名为。

超级文本文件(文件类型为.html)是在目录/channel下的welcome.htm。

这是中国人民日报的一台计算机。

例二:/talk/talk1.htm其其计算机域名为。

超级文本文件(文件类型为.html)是在目录/talk下的talk1.htm。

这是瑞得聊天室的地址,可由此进入瑞得聊天室的第1室。

URI、URL和URN之间的区别与联系URI:Uniform Resource Identifier,统一资源标识符;URL:Uniform Resource Locator,统一资源定位符;URN:Uniform Resource Name,统一资源名称。

其中,URL,URN是URI的子集。

Web上地址的基本形式是URI,它代表统一资源标识符。

有两种形式:URL:目前URI的最普遍形式就是无处不在的URL或统一资源定位器。

URN:URL的一种更新形式,统一资源名称(URN, Uniform Resource Name)不依赖于位置,并且有可能减少失效连接的个数。

但是其流行还需假以时日,因为它需要更精密软件的支持。

URI是以某种统一的(标准化的)方式标识资源的简单字符串。

URI一般由三部分组成:1. 访问资源的命名机制。

2. 存放资源的主机名。

3. 资源自身的名称,由路径表示。

典型情况下,这种字符串以scheme(命名URI的名字空间的标识符——一组相关的名称)开头,语法如下:[scheme:] scheme-specific-partURI以scheme和冒号开头。

Scheme用大写/小写字母开头,后面为空或者跟着更多的大写/小写字母、数字、加号、减号和点号。

冒号把scheme与scheme-specific-part分开了,并且scheme-specific-part的语法和语义(意思)由URI的名字空间决定。

如下面的例子:,其中http是scheme,//是scheme-specific-part,并且它的scheme与scheme-specific-part被冒号分开了。

URI有绝对和相对之分,绝对的URI指以scheme(后面跟着冒号)开头的URI。

前面提到的就是绝对的URI的一个例子,其它的例子还有mailto:jeff@、news:ng.java.help和xyz://whatever。

你可以把绝对的URI看作是以某种方式引用某种资源,而这种方式对标识符出现的环境没有依赖。

如果使用文件系统作类比,绝对的URI类似于从根目录开始的某个文件的径。

与绝对的URI不同的,相对的URI不是以scheme(后面跟着冒号)开始的URI。

它的一个例子是articles/articles.html。

你可以把相对的URI看作是以某种方式引用某种资源,而这种方式依赖于标识符出现的环境。

如果用文件系统作类比,相对的URI类似于从当前目录开始的文件路径。

URL是Uniform Resource Location的缩写,译为"统一资源定位符"。

通俗地说,URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。

采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。

URL的格式由下列三部分组成:第一部分是协议(或称为服务方式);第二部分是存有该资源的主机IP地址(有时也包括端口号);第三部分是主机资源的具体地址。

,如目录和文件名等。

第一部分和第二部分之间用"://"符号隔开,第二部分和第三部分用"/"符号隔开。

第一部分和第二部分是不可缺少的,第三部分有时可以省略。

目前最大的缺点是当信息资源的存放地点发生变化时,必须对URL作相应的改变。

因此人们正在研究新的信息资源表示方法,例如:URI(Universal Resource Identifier)即"通用资源标识"(参见RFC 1630)、URN(Uniform Resource Name)即"统一资源名"和URC(Uniform Resource Citation)即"统一资源引用符"等。

URI目前还处在进一步的研究当中。

研究的方向就是弥补URL目前存在的缺点。

----------------------------------------------简单理解就是URL是大门,URI是门里的每个屋子。

URL:URL是Uniform Resource Location的缩写,既然楼主知道我就不啰嗦了URI 是在Internet 上定位资源的常规方案,它的着重点在于资源,而不是位置。

理论上,URI 可以查找镜像文档的最近的副本,或者定位从一个站点移动到另一个站点的文档。

URI是Web上可用的每种资源- HTML文档、图像、视频片段、程序等- 由一个通过通用资源标志符(Universal Resource Identifier, 简称"URI")进行定位。

URI一般由三部分组成:1. 访问资源的命名机制。

2. 存放资源的主机名。

3. 资源自身的名称,由路径表示。

注:大多数人可能熟悉"URL",而不是URI。

URL是URI命名机制的一个子集。

区别就是URI定义资源,而URL不单定义这个资源,还定义了如何找到这个资源。

比如说,一个服务器上,到一个文件夹/网页的绝对地址(absolute path)就是URI。

参考资料:/view/160675.htm。

相关文档
最新文档