第23讲Java高级编程(二).ppt_第1页
第23讲Java高级编程(二).ppt_第2页
第23讲Java高级编程(二).ppt_第3页
第23讲Java高级编程(二).ppt_第4页
第23讲Java高级编程(二).ppt_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第23讲 Java高级编程(二),URL 编程,URL(Uniform Resource Locator)是统一资源定位器的简称,它表示Internet上某一资源的地址。通过URL我们可以访问Internet上的各种网络资源,比如最常见的WWW和FTP站点。浏览器通过解析给定的URL可以在网络上查找相应的文件或其他资源。 一个URL包括两部分内容:协议名和资源名,中间用“:”分开,即protocol:resourceName 其中协议名(protocol)指明获取资源所使用的传输协议,如http、ftp、file等,资源名(resourceName)则应该是资源的完整地址,包括主机名、端口号、

2、文件名或文件内部的一个引用。对于多数协议,其中的主机名和文件名是必须的,而端口号和文件内部的引用则是可选的,例如: ,URL构造方法,1public URL (String spec); 通过一个表示URL地址的字符串可以构造一个URL对象。 例如,URL url1=new URL( 2public URL(URL context, String spec); 通过基URL和相对URL构造一个URL对象。 例如,URL url2=new URL ( URL url3=new URL(url2, index.html) 3public URL(String protocol, String ho

3、st, String file); 例如,new URL(http, , /index.htm) 4public URL(String protocol, String host, int port, String file); 例如,URL lib=new URL(http, , 80, library/library.htm); 类URL的构造方法都要声明抛弃非运行时异常(MalformedURLException),因此生成URL对象时,我们必须要对这一异常进行处理,通常是用try-catch语句进行捕获。,URL常用的方法及其功能,public String getProtocol()

4、 /获取该URL的协议名。缩进四格,public String getHost() /获取该URL的主机名。 public int getPort() /获取该URL的端口号,若没有设置端口,返回-1。 public int getDefaultPort() /获取默认的端口号。 public String getFile() /获取该URL的文件名。 public String getRef() /获取该URL在文件中的相对位置。 public String getQuery() /获取该URL的查询信息。 public String getPath() /获取该URL的路径。 public

5、 String getAuthority() /获取该URL的权限信息。 public String getUserInfo() /获得使用者的信息。 public String getRef() /获得该URL中的HTML文档标记。 public String toString() /获得完整的URL字符串。,套接字(Socket)编程,在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程。TCP是面向连接的可靠数据传输协议,它重发一切没有收到的数据,并进行数据准确性检查。IP协议是面向无连接的数据包通信,它具有数据包路由选择和差错控制功能,但是它不进行正确检验。 Soc

6、ket工作过程包含以下四个基本的步骤: 1.创建Socket; 2.打开连接到Socket的输入流和输出流; 3.按照一定的协议对Socket进行读/写操作; 4.关闭Socket。,基于无连接的数据报(UDP)通信,UDP是一个无连接、发送独立数据包的协议。不可靠的协议,不提供可靠性保证。但是有时人们需要快速传输信息,并能容忍小的错误,就可以考虑使用UDP协议。 DatagramPacket类和DatagramSocket类是Java用来实现无连接的数据报通信的。其中DatagramPacket类负责读取数据等信息,它的主要构造方法为: (1)public DatagramPacket(by

7、te buf,int length); (2)public DatagramPacket(byte buf,int length,InetAddress add,int port); DatagramSocket类则负责数据报的发送与接收,它主要构造方法有: (1)public DatagramSocket(); (2)public DatagramSocket(int port);,UDP的编程实现过程,UDP编程包括数据报的发送和接收过程。数据报的发送过程可描述如下: (1)创建一个DatagramPacket对象,其中包含要发送的数据,数据分组长度,以及目标主机的IP地址和端口号。 (2

8、)在指定的本机端口创建DatagramSocket对象。 (3)调用DatagramSocket对象的send()方法,以DatagramPacket对象为参数发送数据报。 数据报的接收过程可以描述为: (1)创建一个用于接收数据报的DatagramPacket对象,其中包含空数据缓冲区和指定数据报分组长度。 (2)在指定的本地端口好创建DatagramSocket对象。 (3)调用DatagramSocket对象的receive()方法,以DatagramPacket对象为参数接收数据报,接收到的信息包括数据报内容,发送端的IP地址,以及发送端主机的发送端口号。,建立与数据库的连接,在建立与

9、数据库系统的连接时,首先要使用JDBC加载驱动程序。JDBC使用Class类的forName()方法指明加载哪个数据库系统的JDBC驱动程序。forName()方法的参数为代表各数据库系统的一个字符串,各个数据库系统的写法各不相同,例如MySQL数据库系统写为“org.git.mm.mysql,Driver”,Oracle写为“oracle.jdbc.driver,OracleDriver”,JDBC-ODBC Bridge的数据库系统的写法为“sun.jdbc.odbc.JdbcOdbcDriver”。在正确加载JDBC驱动程序后,使用DriverManager.getConnection(

10、)方法连接数据库,该方法可有3个参数,第一个是JDBC URL,后两个分别是数据库系统的用户名和密码,指定以什么身份连接数据库。 JDBC URL是唯一确定数据库的命名方式,以便Java程序定位数据库实现连接,由数据库系统的生产厂商确定,即由JDBC驱动程序提供商确定。各驱动程序提供商并没有一个严格的JDBC URL命名标准,但在一定程度上还是有其必须遵循的规范。,JDBC URL,JDBC URL的标准格式如下所示,它由三部分组成,各部分之间用冒号分隔。 jdbc: 其中“:”是必须的。jdbc是总协议,是固定的。子协议是使用驱动程序或者数据库的名称。例如JDBC-ODBC的子协议为“odb

11、c” 。但是子协议不唯一,例如Oracle的纯Java驱动程序的子协议不一定是“oracle”。 注意,Java是大小写敏感的,JDBC URL中的协议部分所有字符必须是小写的。 数据库标识的一般格式如下: /:/ 其中用于指定连接数据库所在的服务器,可以是服务器的机器名,也可以是IP地址。当客户端和服务器是同一台机器时,服务器名可以写成 “localhost”或者 “”。“:”后的端口号,是可选的。如果没有标明端口号,将使用数据库系统的默认端口号。,建立连接,在创建完数据源后,就可以建立与数据库data.mdb的连接。下面代码是通常情况下用驱动程序建立连接所需所有步骤的示例

12、: Class.forName(“sun.jdbc.odbc:OdbcOdbcDriver”); String url= “jdbc:odbc:data”; DriverManager.getConnection(url);,访问数据库,与数据库建立连接后,可以实现数据库的访问。访问数据库是数据库应用最根本的目的,而访问数据库最基本的问题有两个, 第一,如何通过SQL语句来访问数据库; 第二,如何接收从数据库返回的结果。JDBC通过接口Statement和接口ResultSet来实现数据库的访问,它们都在系统包java.sql中。,编写一个程序将Access数据库文件中的记录打印出来,impo

13、rt java.sql.*; public class Ex12-6 public static void main(String args) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection conn = DriverManager.getConnection(jdbc:odbc:mydatabase); Statement stmt = conn.createStatement(); String sql = SELECT name,phone FROM fam; ResultSet resultSet = stmt.executeQuery(sql); String name, phone; while ( resultSet.next() ) name = resultSet.getString(1).trim(); phone = resultSet.getString(2).trim(); System.out.println( name + , + phone ); catch ( Exception e ) e.printStackTrace(); ,本章小结,Java提供了强大的编程功能,如多线程程序设计,网络程序设计和数据库编程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论