第11章 图形用户接口

单词和缩写

  GUI(Graphic User Interface)

  Components Containers Layouts

  Frame Panel Button Label event

 DSN(Data Sequence Number)

第12章 网络编程

单词和缩写

  setColor setBackground setForeground repain

 TCP(Transmission Control Protocol)

 UDP(User Datagram Protocol)

  网络编程(P262)

  Applet小程序:插入网页。

  Java.net  Java核心包的网络包:网络通讯(客户端、服务器端)

第1节 网络技术基础

    提供适用TCP和UDP网络协议的类。

应用层 HTTP,FTP

TCP,UDP

IP

设备驱动程序

应用层
传输层 传输层
网络层 网络层
链路层 链路层
物理层
(网络的物理连接设备)

 1.网络通讯协议(TCP)(P262)

   点对点网络连接传输,应用程序有HTTP,FTP。

 2.用户数据报协议(UDP)

   数据包网络通信方式。

   应用程序有ping,测试网络连接的计算机接通情况。

 3.网络通信地址标识(P263)

目的计算机

端口(COM1)

主机名(IP地址)
网易ftp.go.163.com

应用程序
DOS功能调用 INT21
异步通讯输入、输出 AH=03H 04H

 4.网络数据包的传送(P263)

应用程序

|

端口8080

TCP或UDP

|

网络数据包

|

主机名(IP地址)
http://www.ncsa.uiuc.edu

端口号
:8080

数据(路径/文件名)
/demoweb/index.html

第2节 URL

12.2.1 URL概念(P263)

  统一资源定位器URL(Uniform Resource Locator)

  网上资源的指针,指向文件、目录、对象(查询数据库、搜索引擎)

主机名(IP地址)
http://www.ncsa.uiuc.edu

端口号
:8080

数据(路径/文件名)
/demoweb/index.html

   主机名分隔符(://)

   端口分隔符(:)

   路径/文件名分隔符(/)

12.2.2 URL类(P264)

 1.构造器

   URL对象是确定资源的位置。

   public URL(string protocol,string host,int port,

     string file) throws MalformedURLException

   (协议:http,ftp、主机名、端口、主机文件、形成URL出错异常)

  例如:创建URL对象

  try{

      URL urla=new URL("http","hostname",80,"index.html");

      }catch (MalformedURLException e){......}

 2.方法

   public int getPort() 得到URL对象的端口号

   public String getProtocol() 得到URL对象的协议名

   public String getHost() 得到URL对象的主机名

   public String getFile() 得到URL对象的文件名

12.2.3 URLconnection类(P265)

   URLconnection类:抽象类,实现应用程序和URL间通信连接,

     读写URL的资源。

   abstract public void connect() throws IOException

   打开与URL所指定资源的通信连接。

12.2.4 实例:从Internet下载HTML文件(P267)

   创建FileOutputStream对象用于写文件

   FileOutputStream fileOut=new FileOutputStream(args[1]);

第3节 InetAddress类(P269)

12.3.1 InetAddress类简介

   InetAddress类:存储远程系统的IP地址。

   InetAddress remoteOP=InetAddress.getByName("java.sun.com");

   通过名字确定机器的IP地址。

第4节 TCP Sockets套接字编程

12.4.1 TCP Sockets基础(P270)

 1.TCP Sockets是两台机器进行通信的端点,

     开发“客户机/服务器”应用。

 2.创建TCP Sockets需要的信息:

   本地系统的IP地址。

   本地应用程序正在使用的TCP端口号。

   远程系统的IP地址。

   远程系统应用程序相应的TCP端口号。

 3.Sockets在“客户机/服务器”中的应用:

   守护进程,等待请求,处理并返回结果。

 4.UNIX操作系统中端口的分配:

   低于1024的端口:捆绑拥有超级用户权限的应用,

   高于1024的端口:动态或临时分配给客户机应用程序。

 5.客户机应用程序建立Socket连接,捆绑端口(FTP 21,HTTP 80)。

12.4.2 SocketImpl类(P272)

   SocketImpl类:创建客户机Socket和服务器Socket。

 1.成员变量

   protected FileDescriptor fd; //socket 的文件描述符对象类

   protected InetAddress address; //socket 远端的IP地址

   protected int port; //socket 连接的远程主机的端口号

   protected int localport; //socket 连接的本地端口号

 2.方法

  * protected abstract void create(boolean stream)

   throws IOException

   创建一个流(stream)或数据报(datagram)Socket,

   stream为true:创建一个流Socket

   stream为fals:创建一个数据报Socket

  * protected abstract void connect(string host,int port)

   throws IOException

   连接Socket到远程主机host上的指定端口port。

  * protected abstract void bind(InetAddress host,int port)

   throws IOException

   捆绑Socket到IP地址为address的远程主机的指定端口port。

12.4.3 Socket类(P273)

  Socket类:实现客户端的Socket的实例,执行Socket的实际工作。

 1.构造器

   public Socket

   (String host,int port,InetAddress localAddr,intlocalPort))

   throws IOException

 2.方法

  * public InputStream getInputstream()throws IOException

    得到从Socket读取字节的输入流。

  * public OutputStream getOutputstream()throws IOException

    得到向Socket写字节的输出流。

12.4.4 ServerSocket类

   ServerSocket类:创建TCP Socket服务器。

 1.构造器(P276)

   public ServerSocket(int port)throws IOException

   在指定端口创建监听ServerSocket

 2.方法

   public int getLocalPort()

   得到ServerSocket用于监听的端口号。

 3.ServerSocket类的使用(P277)

   在端口创建ServerSocket后,

   用accept()方法等待客户的连接请求,

   客户机完成连接后,打开流,处理发生的通信。

12.4.5 “客户机/服务器”通信协议的开发流程

  “客户机/服务器”通信:实现通信协议的基本步骤(P277)

 

客户机

服务器

初始化

2.建立Socket对象
  向服务器发出链接请求

1.建立ServerSocket对象
  等待客户机的链接请求

建立链接

 

3.响应客户机,建立链接

请求响应

4.发出请求

5.响应请求

处理结果

7.接收处理结果

6.返回处理结果

中断链接

8.直到结束对话

9.中断链接,结束通信

 

第5节 UDP Socket编程

12.5.1 UDP Socket基础(P282)

 1.概念

   TCP(Transport Control Protocol):

   传输控制协议,面向连接,可靠连接。

   UDP(User Datagram Protocol):

   用户数据报协议,无连接,效率高。

 2.IP多点传送

   点对点:单点传播。

   多点传送:有限广播,适合高带宽,发送网络音视频。

   无限点传送:无限广播。

12.5.2 DatagramPacket类

   DatagramPacket类(P284)

   创建发送的数据报,读取数据报中的数据。

 1.构造器

   public DatagramPacket

   (byte[] ibuf,int length,InetAddress iaddr,int iport);

    编码信息数据的字节数组,长度(64kB),

  接收方的主机名和IP地址,端口

 2.方法

   public synchronized byte[] getData();

   得到接收数据报中的数据

第6节 RFC

12.6.1 RFC概述(P289)

   RFC(Request For Comments):

   请求注解,Internet标准草案,可以实现所有的网络应用。

12.6.2 利用WhoIs 协议查询Internet 域名(P290)

 1.原理

   访问InterNIC站点 http://www.internic.net/whois.html

   WhoIs 服务器从WhoIs数据库中查询所输入的内容;

 2.编程方法

   用Socket类的构造器创建流Socket;

   public Socket(string host,int port)throws IOException

   连接主机"whois.intrenic.net"的端口43;

   创建Socket时发生I/O错误,则抛出IOException异常;

   用getInputStream()和getOutputstream()方法分别得到

   该Socket的输入流和输出流,用于对该Socket进行数据读写;

   完成Socket通信后,先关InputStream()和Outputstream(),

   后关Socket。

   

第13章 国际化与本地化编程

单词和缩写

 

第14章 JDBC编程技术综述

单词和缩写

  B/W/D(Browser/Web/Database)

  JDBC(Java DataBase Connection)

  SQL(Structured Query Language)

  ODBC(Open DataBase Connection)

第1节 JDBC编程技术综述

14.1.1 JDBC的概念(P313)

 1.Java 数据库连接

   JDBC(Java DataBase Connectivity)

   用于执行SQL语句的Java API

 2.SQL语句通过JDBC API访问数据库

   SQL语句—JDBC API—不同的驱动程序—不同的平台或数据库系统。

14.1.2 JDBC的用途(P314)

 1.与数据库建立连接

 2.发送SQL语句

 3.处理结果

   connection con = DriverManager.getConnection(

             "jdbc:odbc:wonbat","login","password");

   Statement stmt = con.createstatement();

   Resultset rs = stmt.executeQuery(

             "SELECT a,b,c FROM Tablel");

   while (rs.next()){

     int x = rs.getInt("a");

     String s = rs.getString("b");

     float f = rs.getFloat("c");

   }

14.1.3 JDBC-ODBC桥(P315)

 * 开放数据库连接

   ODBC(Open DataBase Connection)

 1.JDBC-ODBC桥

   是JDBC驱动程序,JDBC通过JDBC-ODBC桥操作ODBC可用的数据库。

 2.使用JDBC-ODBC桥

   显式加载桥驱动程序类sun.jdbc.odbc.JdbcOdbcDriver代码:

  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

 3.JDBC-ODBC桥支持的JDBC URL

    odbc子协议的URL形式:

  jdbc:odbc:[<data-source-name>=<attribute-value>]

 例如:

   jdbc:odbc:sybase

   jdbc:odbc:mydb;UID=me;PWD=secret

14.1.4 JDBC URL(P315)

 1.JDBC URL的概念

    JDBC URL提供标识数据库的方法,

  可以使相应的驱动程序识别该数据库与之建立连接。

 2.JDBC URL的语法格式

    jdbc:<子协议>:<子名称>

  jdbc:JDBC URL中的协议。

  <子协议>:驱动程序名或数据库连接机制,如“odbc"。

 例如:通过JDBC-ODBC桥访问fred数据库的URL

         jdbc:odbc:fred

 //协议:jdbc,子协议:odbc,子名称fred(本地ODBC数据资源)

  <子名称>:标识数据库的方法,

     通过网络访问数据库,JDBC URL中包括网址。

 //主机名:端口/子协议

14.1.5 odbc子协议(P316)

 1.odbc子协议语法:

   jdbc:odbc:<数据资源名称>[;<属性名>=<属性值>]*

 例如:jdbc:odbc:wombat;CacheSize=20;ExtensionCase=LOWER

14.1.6 事务(P317)

 1.事务是整体执行SQL语句,

   事务结束时调用方法提交(commit)或还原(rollback)方法。

   方法提交(commit)保存SQL语句对数据库的修改。

   方法还原(rollback)放弃修改。

第2节 driverMamaget类

 1.driverMamaget类(P317)

   管理JDBC驱动程序。

 2.显式地装载JDBC驱动程序my.sql.drive的代码

   Class.forName("my.sql.driver");

 3.用给定数据库URL建立连接的方法

   public static synchronized Connection getConnection

   (String url,String user,String password)throws SQLException

    JDBC URL格式的数据库url,用户名,口令

第3节 Statement接口

 1.Statement对象执行静态的SQL语句,并得到执行结果。(P319)

 2.Statement接口的方法

   ResultSet executeQuery(String sql)throws SQLException

第4节 PreparedStatement接口

 1.PreparedStatement对象代表预编译的SQL语句,

   使SQL语句“准备好”,执行速度快。(P320)

第5节 ResultSet接口

 1.ResultSet提供访问数据库表,(P321)

   ResultSet对象维护光标指针,描述当前记录的位置。

 2.取得当前记录的字段值的方法

   String getString(int columnIndex) throws SQLException

                    索引得到字段的值

第6节 JDBC编程实例:JDBCDemo.java

14.6.1 创建新的ODBC数据资源(P323)

 1.Windows 98上使用ODBC的方法

  * 控制面板—ODBC数据源(32位)—用户DSN卡—

    Visual FoxPro Database—添加—

    Microsoft Visual FoxPro Driver—完成。

 * 数据类型(Database type): Free Table directory;

 * 路径(Path): JDBCDemo.java和ODBC数据资源存放同一目录,

   在该目录中JDBCDemo.java对ODBC数据资源进行创建删除表、

   插入、选择、更改记录操作。

 * 编译JDBCDemo.java代码。

 * 运行JDBCDemo.java程序:java JDBCDemo

14.6.2 ODBC编程的典型步骤(P324)

 1.导入java.sql包

   import java.sql.*;

 2.声明变量

   Statement stmt;  //用于选择语句

   PreparedStatement pstmt;  //用于更新语句

   ResultSet rs;  //用于选择结果

 3.加载jdbc-odbc桥驱动程序

   Class.forName("sun.jdbc.odbc.JdbcodbcDriver");

                工作站   协议   驱动程序

 4.定义JDBC URL

   String url = "jdbc:odbc:JDBCDemo";

 5.连接数据库

   Connection con = DriverManager.getConnection (url);

 6.进行相应的数据操作

   选择操作:用对象Statement或PreparedStatement

   更新操作:用对象PreparedStatement

 7.关闭数据库连接

   con.close();

14.6.3 源程序:JDBCDemo.java(P325)

  [例14.1] JDBCDemo.java 程序

    演示JDBC操作数据库(ODBC数据资源)的各项功能。

   创建表(CREATE)、删除表(DROP)、

    插入(INSERT)、选择(SELECT)、更改(UPDATE)。

 

附录 Visual J++6.0简介

Visual J++6.0 主界面

Visual J++6.0

文件

编辑

查看

项目

编译

调试

工具

窗口

帮助

新建
工程

增加
项目

打开
工程

保存
文件

 

开始
调试

断开
调试

结束
调试

 

查找
替换

 

工程
浏览

属性
窗口

工具箱

任务
列表

 

调试
设计

编辑
HTML

工具箱

Visual J++6.0

编辑区

工程
浏览

HTML

Solution
Project1
Applet1.java
Page1.htm

任务列表

 

  VJ++编制动态HTML程序,

  可将Java应用程序封装为.exe或cab(cabinet),

  提供特殊的JVM。

一、快速生成Applet小程序

 1.Applet Wizard完成Applet小程序的步骤

   创建必需的Java类和.java源代码文件;

   构造常用的方法;

   为添加Java代码提供引导;

   生成HTML文件;

   为Java小程序生成一个工程。

 2.VJ++6.0创建Applet小程序的过程

   例如:正弦波 F:\JAVA\TX\zxb.java

     File--New project--Web Page 文件夹的Applet on HTML—

   工程名zxb.java,路径F:\JAVA\TX—打开—保存到—NO—

   Project Explorer 窗口:Applet1.java改zxb.java—

   打开zxb.java—编辑源程序—调试Debug--Start--

   浏览器窗口Page1.htm—查看—源文件—Applet1.class改zxb.class

 * 另一版本VJ++的操作方法

   File--New--project--Java Applet Wizard—指定工程名、路径;

    指定小程序类名—选择TODO加入程序;

   指定产生HTML文件—指定显示区宽和高;

   可以选择多线程、动画、鼠标事件;

   为小程序中的类添加成员变量—完成—生成Applet小程序;

   Build菜单—Build All—编译生成类文件(.class)。

 3.VJ++6.0编辑文本字号选择

   tools--options--text editor--font and colors--size 16磅。