``` 请输入需要访问的网址:http://172.16.26.234:8080/java_test 协议名:http 主机名:172.16.26.234 端口号:8080 路径名:/java_test```使用java写出代码,并思考如果省略端口号,又該如何处理?
时间: 2024-09-26 08:09:40 浏览: 36
项目演示地址:https://www.bilibili.com/video/BV11g4y1K77e/
在Java中,你可以使用`java.net.URL`类来构建URL对象并解析上述信息。下面是一个简单的例子:
```java
import java.net.URL;
public class Main {
public static void main(String[] args) {
String urlStr = "http://172.16.26.234:8080/java_test";
URL url = null;
try {
// 构建URL对象
url = new URL(urlStr);
System.out.println("协议名: " + url.getProtocol());
System.out.println("主机名: " + url.getHost());
System.out.println("端口号: " + url.getPort());
System.out.println("路径名: " + url.getPath());
} catch (Exception e) {
e.printStackTrace();
}
// 如果省略端口号,可以使用默认的端口
String urlStrWithoutPort = "http://172.16.26.234/java_test";
try {
url = new URL(urlStrWithoutPort);
if (url.getPort() == -1) { // 端口默认值检查
System.out.println("默认端口: " + url.getDefaultPort());
} else {
System.out.println("省略端口号后的端口: " + url.getPort());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在这个例子中,当我们省略端口号时,如果不指定,默认使用的HTTP端口是80,如果服务器配置了非默认的HTTP端口,那么`getPort()`方法将返回-1,此时我们可以调用`getDefaultPort()`方法获取默认端口。注意,真实网络环境中,不指定端口号的情况下,程序能否正常连接取决于目标服务器的配置。
阅读全文