在Java里面如何解析一个完全的URL网址呢?在PHP里面一个函数parse_url搞定,返回一个数组,里面包括了URL的全部组成部分的信息。
那么在Java里面有没有这样的函数呢?

答案是肯定的,在Java里面也是有专门解析URL网址参数的,只不过在Java里面是通过一个工具来实现的,这个工具便是URL工具。

2. 教程

2.1 HTTPS

php的parseurlJava解析URL的办法 Webpack

首先我们来一个https的网址看看。

Map<String,Object>map=newLinkedHashMap<>();URLurl;try{url=newURL("https://fuge:123456@tongfu.net:8080/home/35/tag/同福编程.html?q=java");map.put("协议",url.getProtocol());map.put("主机名称",url.getHost());map.put("要求端口",url.getPort());map.put("要求默认端口",url.getDefaultPort());map.put("要求路径",url.getPath());map.put("要求参数",url.getQuery());map.put("要求文件",url.getFile());map.put("认证信息",url.getAuthority());map.put("用户信息",url.getUserInfo());map.put("引用信息",url.getRef());}catch(MalformedURLExceptione){e.printStackTrace();}

可以看到URL工具把传入的网址进行了拆解,把要求网址的协议、主机名称、端口、路径、参数包括认证信息都解析出来了。
须要把稳的是,这里的要求端口是实际要求端口,而要求默认端口是根据要求协议来的。

2.2 HTTP

接着我们再来一个http的网址看看和https有什么不同。

Map<String,Object>map=newLinkedHashMap<>();URLurl;try{url=newURL("http://fuge:123456@tongfu.net:8080/home/35/tag/同福编程.html?q=java");map.put("协议",url.getProtocol());map.put("主机名称",url.getHost());map.put("要求端口",url.getPort());map.put("要求默认端口",url.getDefaultPort());map.put("要求路径",url.getPath());map.put("要求参数",url.getQuery());map.put("要求文件",url.getFile());map.put("认证信息",url.getAuthority());map.put("用户信息",url.getUserInfo());map.put("引用信息",url.getRef());}catch(MalformedURLExceptione){e.printStackTrace();}

可以创造要求协议从https变成了http了,同时要求默认端口也从443变成了80了!

3. 总结

Java的URL工具解析网址后得到的参数彷佛更加全面,基本上我们不须要进行二次加工就可以直策应用了~~

https://tongfu.net/home/35/blog/513587.html