URL处理
URL可以分为如下几个部分:
protocol://host:port/path?query#fragment
protocol(协议)可以是 HTTP、HTTPS、FTP 和 File,port 为端口号,path为文件路径及文件名。
HTTP 协议的 URL 实例如下:
http://www.baidu.com/index.html?language=cn#j2se
URL 解析:
- 协议为(protocol):http
- 主机为(host:port):www.runoob.com
- 端口号为(port): 80 ,以上URL实例并未指定端口,因为 HTTP 协议默认的端口号为 80。
- 文件路径为(path):/index.html
- 请求参数(query):language=cn
- 定位位置(fragment):j2se,定位到网页中 id 属性为 j2se 的 HTML 元素位置 。
import java.net.*; import java.io.*; public class URLDemo{ public static void main(String [] args){ try{ URL url = new URL("http://www.baidu.com/index.html?language=cn#j2se"); System.out.println("URL 为:" + url.toString()); System.out.println("协议为:" + url.getProtocol()); System.out.println("验证信息:" + url.getAuthority()); System.out.println("文件名及请求参数:" + url.getFile()); System.out.println("主机名:" + url.getHost()); System.out.println("路径:" + url.getPath()); System.out.println("端口:" + url.getPort()); System.out.println("默认端口:" + url.getDefaultPort()); System.out.println("请求参数:" + url.getQuery()); System.out.println("定位位置:" + url.getRef()); }catch(IOException e){ e.printStackTrace(); } } }
运行结果如下:
URL 为:http://www.baidu.com/index.html?language=cn#j2se 协议为:http 验证信息:www.baidu.com 文件名及请求参数:/index.html?language=cn 主机名:www.baidu.com 路径:/index.html 端口:-1 默认端口:80 请求参数:language=cn 定位位置:j2se