import java.net.*; import java.io.*; public class ParseURL { public static void main(String[] args) throws Exception { URL aURL = new URL("http://java.sun.com:80/docs/books/tutorial" + "/index.html?name=networking#DOWNLOADING"); System.out.println("protocol = " + aURL.getProtocol()); System.out.println("authority = " + aURL.getAuthority()); System.out.println("host = " + aURL.getHost()); System.out.println("port = " + aURL.getPort()); System.out.println("path = " + aURL.getPath()); System.out.println("query = " + aURL.getQuery()); System.out.println("filename = " + aURL.getFile()); System.out.println("ref = " + aURL.getRef()); } }
输出
ut:ut:protocol = http
ut:ut:authority = localhost:8080
ut:ut:host = localhost
ut:ut:port = 8080
ut:ut:path = /UT2.0/login.action
ut:ut:query = null
ut:ut:filename = /UT2.0/login.action
ut:ut:ref = null
判断URL是否合法
文件:Test.java
import java.net.HttpURLConnection; import java.net.URL; public class Test { public static void main(String[] args) { System.out.println(exists("http://www.baidu.com")); System.out.println(exists("http://www.baidu.com/XXXXX.html")); } static boolean exists(String URLName) { try { //设置此类是否应该自动执行 HTTP 重定向(响应代码为 3xx 的请求)。 HttpURLConnection.setFollowRedirects(false); //到 URL 所引用的远程对象的连接 HttpURLConnection con = (HttpURLConnection) new URL(URLName).openConnection(); /* 设置 URL 请求的方法, GET POST HEAD OPTIONS PUT DELETE TRACE 以上方法之一是合法的,具体取决于协议的限制。*/ con.setRequestMethod("HEAD"); //从 HTTP 响应消息获取状态码 return (con.getResponseCode() == HttpURLConnection.HTTP_OK); } catch (Exception e) { e.printStackTrace(); return false; } } }