Java中的URL与URLConnection:详解与使用

需积分: 28 3 下载量 182 浏览量 更新于2024-09-10 1 收藏 111KB PDF 举报
"Java中的URL和URLConnection类是用于处理网络资源的核心类,它们在Java的网络编程中扮演着重要角色。URL类用于表示统一资源定位符,用来定位互联网上的资源,而URLConnection类则是用于建立与URL指定的资源的连接,并进行数据传输。本文将详细介绍这两个类的基本使用和常见方法。" 1. URL类 - URL类是用来表示Internet上资源的统一资源定位符。它可以是一个文件、目录或任何可以通过特定协议访问的对象。 - JDK 6.0中,URL类提供了多种构造方法,其中最常见的两种是: - `URL(String spec)`:通过给定的URL地址字符串创建URL对象,如`http://localhost:8080/index.html`。 - `URL(String protocol, String host, int port, String file)`:指定协议、主机名、端口号和资源路径来创建URL对象。 - 常用的方法包括: - `getHost()`:返回URL的主机名。 - `getPath()`:获取URL的路径部分。 - `getPort()`:获取URL对应的端口号。 - `getProtocol()`:返回URL使用的协议名称(如http、https等)。 - `getContent()`:尝试获取URL的内容,返回的内容类型取决于具体实现。 2. URLConnection类 - URLConnection类是所有处理URL连接的类的抽象基类。它提供打开到URL引用的远程对象的连接,并且允许设置请求属性,如超时和重定向策略。 - 通过调用URL对象的`openConnection()`方法,我们可以获取到一个URLConnection实例,然后通过这个实例与远程资源建立连接。 - 常用的方法和属性: - `connect()`:建立到URL的网络连接。 - `getInputStream()`:获取到输入流,用于读取远程资源的数据。 - `getOutputStream()`:获取输出流,用于向远程资源发送数据。 - `setConnectTimeout(int timeout)`:设置连接超时时间。 - `setReadTimeout(int timeout)`:设置读取数据的超时时间。 - `setDoInput(boolean input)`:控制是否允许从连接读取数据。 - `setDoOutput(boolean output)`:控制是否允许通过连接写入数据。 在实际的网络编程中,URL和URLConnection类常常用于下载文件、发送HTTP请求、获取网页内容等场景。通过URL类,我们可以精确地定位到所需的资源,而URLConnection则提供了与这些资源交互的通道。了解和熟练使用这两个类对于进行Java网络编程至关重要。
2010-01-14 上传
package com.hexiang.utils.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; import org.apache.log4j.Logger; public class DBConnection { /** * 获得与数据库的连接 * * @param path * @return Connection */ public static Connection getConn(String classDriver, String url, String user, String pwd) { try { Class.forName(classDriver); return DriverManager.getConnection(url, user, pwd); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } public static Connection getConn(DataSource dataSource) { try { return dataSource.getConnection(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } public static Connection getConn(String jndiName) { try { Context ctx; ctx = new InitialContext(); DataSource dataSource = (DataSource) ctx.lookup("java:comp/env/" + jndiName); return dataSource.getConnection(); } catch (NamingException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } public static Connection getConn(Properties properties) { try { String driver = properties.getProperty("jdbc.driverClassName"); String url = properties.getProperty("jdbc.url"); String user = properties.getProperty("jdbc.username"); String password = properties.getProperty("jdbc.password"); Class.forName(driver); return DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } /** * oracle连接 * * @param path * @return Connection */ public static Connection getOracleConn(String