java教程第10章Java网络程序设计

合集下载

自考Java程序设计一(第10章网络与数据库编程基础)

自考Java程序设计一(第10章网络与数据库编程基础)

3
1、网络基础知识
Ø Ø Ø Ø
TCP(传输控制协议)是面向连接的、可靠的点对点的传输协议。 UDP(用户数据报协议)是无连接的不可可靠的传输协议。 IP是网络层协议,实现按IP地址的网络路由的功能。 IP地址:标识计算机等网络设备的网络地址,由四个8位的二进制数组成,中 间以小数点分隔。如:166.111.136.3, 166.111.52.80 主机名(hostname):网络地址的助记名,按照域名进行分级管理。如 服务类型(service):网络的各种服务。 如:web服务, ftp服务, smtp服务, Telnet 服务等
8
Java网络程序设计支持机制
Java网络应用系统
支持URL的类 支持Socket通信的类
•利用URL访问网络资源 •利用Socket通信
网 络
Java网络程序设计支持机制
• Ø Ø
支持网络通信的类在包中。 URL, URLConnection, Socket, ServerSocket ,使用TCP实现网络通信。 DatagramPacket, DatagramSocket, MulticastSocket 支持 UDP 通信方式。
Ø
网络进程:就是网点机(连入网络的计算机)上运行的程序。 网络进程在通信协议中用端口(port)标识,而它驻留的网点机则用其IP地址或域 名来标识。
Ø Ø
通信协议指网络进程之间的通信必须遵循预定的规则。 TCP/IP是一组在Internet网络上的不同计算机之间进行通信的协议的总称,它由 应用层的HTTP、FTP、SMTP和传输层的TCP及网络层的IP等一系列协议组成。
第10章
网络与数据库编程
本章重点
Ø支持JAVA程序访问网上资源的类及其方法 Ø网络编程应用 Ø支持Java程序与数据库连接的类及其方法 Ø支持Java程序的数据表查询、数据记录修改 和插入的类及其方法 46389) 欢迎❤加入...欢迎❤交流...止不住的惊喜等 着你.........

Java网络程序设计章 (5)

Java网络程序设计章 (5)
● 数据一致性和可维护性,以确保数据的安全性和可靠 性:主要包括安全性控制,以防止数据丢失、错误更新和越权 使用;完整性控制,保证数据的正确性、有效性和相容性;并 发控制,使在同一时间周期内,允许对数据实现多路存取,还 能防止用户之间的不正常交互作用;故障的发现和恢复,由数 据库管理系统提供一套方法,可及时发现故障和修复故障,从 而防止数据被破坏。
图10-2 设置服务端口
第10章 数据库访问 其默认字体编码Latin1,需要修改为UTF-8,以便支持多 国文字,如图10-3所示。
图10-3 设置默认字符集
第10章 数据库访问 MySQL安装完毕后,下载数据库驱动类库MySQLconnector-java-5.1.7-bin.jar,并将其复制到Java安装路径, 例如:安装路径为C:\Program Files\Java\jdk1.5.0_02\lib。 然后在JCreator编译环境中添加该数据库连接文件的存储路径, 如图10-4所示。
SELECT * FROM Persons where FirstName = “Bush”
结果集类似这样:
Id
LastName
2
Bush
FirstName Li
Address Century Avenue
City Shang Hai
(4) 当发现存在不合理的数据时应该删除该记录,例如, 删除LastName = Bush:
(3) 可以通过选择语句从表中读取指定的数据,例如选取 LastName 列的数据:
SELECT LastName FROM Students
第10章 结果集类似这样:
数据库访问
LastName Adams Bush Carter
第10章 数据库访问 如果要选择FirstName = Bush:

2019-2020年人教统编jAVA2程序设计基础第十章课件

2019-2020年人教统编jAVA2程序设计基础第十章课件

返回
10.1.3 建立和删除文件
File对象中关于建立和删除文件(或目录)的方法见表10.2。
返回
表10.2 File对象建立和删除文件的方法
方法 boolean createNewFile()
File createTempFile(String prefix,String suffix) File createTempFile(String prefix, String suffix,File directory) boolean delete() void deleteonExit() boolean mkdir() boolean mkdirs()
boolean renameTo(File dest)
说明
当不存在所关联文件时,新建一个名为该关联文 件名的空文件
在系统默认的临时目录中新建一个空文件,新文 件的前缀为prefix,扩展名为suffix
在指定目录中新建一个空文件,新文件名的组成 同上
删除关联文件或目录,不能删除非空的目录
在Java虚拟机终止时删除关联文件或目录 新建一个名为所关联目录的目录
教学目标:熟悉对文件及目录的基本操作,熟悉Java I/O系统中各 个类的作用及它们之间的关系 ,掌握随机访问文件的方法 。通过上机 实践,掌握上述内容的综合应用。
10.1 文件的基本操作
对于任何程序设计语言的I/O系统来说,在对文件进行读写数据操 作(不管以何种方式进行)之前,如何找到或定位正确的文件 ( 或目 录),如何获取文件(或目录)的属性信息(如是否只读、修改时间 、文 件大小等),如何创建和删除文件 (或目录 ) ,是首先必须解决的基础 性问题。对文件(及目录) 的这些基本操作,是整个 I/O 系统的基石。 本节就先介绍Java 提供的用以协助处理文件 ( 及目录 ) 相关事务的类 File。

Java Web程序设计与案例教程 第10章 JavaWeb常用组件应用开发——留言本3.0

Java Web程序设计与案例教程 第10章 JavaWeb常用组件应用开发——留言本3.0

10.2.2 添加Apache Commons Email组件
该组件依赖于mail.jar包和activation.jar包 ,可分别通过网址 /products/ javamail/index.jsp和网址 /javase/technologies /desktop/javabeans/jaf/downloads/ index.html下载。然后将commons-email1.2.jar、mail.jar和activation.jar三个包文 件复制到WEB-INF/lib目录之下即可。
Apache Commons Email组件由Apache开 源软件组织提供,客户无需另行安装Email 服务器即可用其实现邮件的发送与接收,用 其也可实现带附件的邮件发送。可通过网址 /downloads /download_email.cgi下载该组件,下载的 是一个ZIP压缩文件,解压后得到 commons-email-1.2.jar包。
在WebRoot目录下增加了avatars目录、 temp目录和ckeditor目录。avatars目录用 于存放用户上传的头像文件,temp目录用 于存放上传时产生的临时文件,ckeditor目 录用于存放ckeditor组件的相关文件。
10.2.2 添加Apache Commons Email组件
第10章 Java Web常用组件应用开发
——留言本3.0
本章内容
了解留言本新增功能 利用邮件找回密码 实现可视化在线编辑留言 实现图片上传与管理 实现登录的验证码检验 实现留言的分页查询
10.1 需求分析
本章将在上一章所建立的MVC设计模式和 DAO设计模式的架构上,利用常用开源组件 实现功能的进一步扩展。主要增加的功能有 利用邮件找回密码功能、可视化在线编辑留 言功能、图片上传与管理功能、登录的验证 码检验功能和留言的分页查询功能。

java学习第10章PPT教学课件

java学习第10章PPT教学课件
由调度程序调用,当run()方法返回时, 该线程停止
使调用它的线程立即停止执行
使线程睡眠n毫秒,n毫秒后,线程可以 再次运行
使线程挂起,暂停运行Not Runnable
恢复挂起的线程,使处于可运行状态 Runnable
将CPU控制权主动移交到下一个可运行 线程
2、Thread类的主要方法
setName(String) getName() getPriority() setPriority(int) join()
赋予线程一个名字
取得由setName()方法设置的线程名字的 字符串
返回线程优先级
设置线程优先级
当前线程等待调用该方法的线程结束后, 再往下执行
setDaemon(boole an )
设置该线程是daemon线程还是用户线程, Daemon线程也称服务线程,通常编 成无限循环,在后台持续运行。
例10-1 直接继承Thread类实现多线程
第10章 多线程机制
1.1 Java线程的概念 1.2 Java多线程编程方法 1.3 线程的控制 1.4 线程资源的同步处理
1.多进程
多进程的缺点: • 进程切换开销大; • 进程间的通信很不方便。
2.多线程
• 多线程则指的是在单个程序中可以同时运行多个 不同的线程,执行不同的任务
• 线程切换的开销小 。
例10-2 计数按钮的设计
import java.applet.*; import java.awt.*; class countbutton extends Button implements Runnable {
int count=0; public countbutton(String s) { super(s); } public void run() {

《Java程序设计案例教程》第十章练习答案

《Java程序设计案例教程》第十章练习答案

第10章多态性与虚函数一、单项选择题1.实现运行时的多态性要使用(D)。

A.重载函数B.构造函数C.析构函数D.虚函数2.通过运算符重载,可以改变运算符原有的(A)。

A.操作数类型B.操作数个数C.优先级D.结合性3.将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是(B)。

A.不合法的运算符B.一元运算符C.无操作数的运算符D.二元运算符4.在重载一个运算符时,其参数表中没有任何参数,说明该运算符是(B)。

A.作为友元函数重载的一元运算符B.作为成员函数重载的一元运算符C.作为友元函数重载的二元运算符D.作为成员函数重载的二元运算符5.如果表达式++a中的"++"是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为(D)。

A.a.operator++(1)B.operator++(a)C.operator++(a,1)D.a.operator++()6.如果表达式a>=b中的">="是作为非成员函数重载的运算符,则可以等效地表示为(C)。

A.a.operator>=(b)B.b.operator>=(a)C.operator>=(a,b)D.perator>=(b,a)7.有如下程序:#include<iostream>using namespace std;class A{public:virtual void funl (){cout<<"A1";}void fun2 (){cout<<"A2";}};class B: public A{public:void funl (){cout<<"Bl";}void fun2 (){cout<<"B2";}};int main(){A*p=new B;p->funl ();p->fun2();return 0;}程序执行后,输出结果为(C)。

Java程序设计教程 第十章

Java程序设计教程 第十章

10.2.3 类URLConnection
URLConnection由两种方式构建:一种是通 过一个URL实例openConnection()方法返回 一个,另一种是直接通过new URLConnection(URL u1)来创建。 URLConnection实例不仅可以实现接收消息, 还可以发送消息。该类的构造函数和常用成 员方法如表10-2所示。
10.1.2 通信子网
IP地址及分类: (1)A类IP地址(范围 1.0.0.0~ 127.255.255.255)。 (2)B类IP地址(范围 128.0.0.0~ 191.255.255.255)。 (3)C类IP地址(范围 192.0.0.0~ 223.255.255.255)。 (4)D类地址用于多点广播(Multicast)(范 围 224.0.0.0~239.255.255.255)。 (5)E类IP地址(范围240.0.0.0~ 255.255.255.255)。
OSI虽然对网络结构提供了一个国际标准, 但是现实中并未得到广泛应用,因为它的层 数太多,实现起来麻烦而且影响效率。从 ARPAnet开始,流行的网络协议都朝着实用 的角度考虑,TCP/IP只用了OSI其中的四层。 如果编写Java代码,涉及的都是传输层以上 的内容,对底层考虑较少。
10.1.2 通信子网
10.2 使用URL定位资源
10.2.1 URL的概念 10.2.2 URL类的构造函数与方法 10.2.3 类URLConnection
10.2.1 URL的概念
因为URL是URI的子集。URI表示的是统一的资源标 识,它是以某种统一的(标准化的)方式标识资 源的简单字符串。这种字符串以scheme(命名 URI的名字空间的标识符——一组相关的名称)开 头,语法如下: [scheme:] scheme-specific-part 可以把URI按照绝对的或相对的分类。绝对的URI 指以scheme(后面跟着冒号)开头的URI。前面 提到的就是绝对的URI的一个 例子 。与绝对的URI不同的,相对的URI不是以 scheme(后面跟着冒号)开始的URI。它的一个 例子是articles/articles.html。如果用文件系统作 类比,相对的URI类似于从当前目录开始的文件路 径。

Java程序设计教程chap10

Java程序设计教程chap10

10.3.2 Socket类和ServerSocket类
(1)Socket类 Socket类的构造方法 Socket(String host, int port) 以字符串host表示的主机地址 和prot指定的端口创建对象。 Socket(InetAddress address, int port) 以address指定的IP地 址和port指定的端口创建对象。 Socket(String host, int port, InetAddress localAddr, int localPort) 以字符串host表示的主机地址和prot指定的端口 创建对象。 Socket(InetAddress address, int port, InetAddress localAddr) 以address指定的IP地址和port指定的端口创建 对象。
10.2.1 URL类
(2)获得URL属性 URL类提供获得URL对象的协议、主机、端口、文件和 引用字符串等属性的方法,常用方法如下: public String toString() //返回完整URL地址字符串 public String getProtocol() //获取此 URL 的协议名称 public int getPort() //获取此 URL 的端口号 public int getDefaultPort() //获取与此 URL 关联协议的 默认端口号 public String getHost() //获取此 URL 的主机名 public String getFile() //获取此 URL 的文件名 public String getRef() //获取此 URL 的锚点(也称为 “引用”)
第10章 网络通信
10.1 10.2

java10网络编程(简化版)

java10网络编程(简化版)
14:46 第17页
(2)打开一个Socket对象。
对于客户机: Socket c1=null; c1=new Socket("dbms-pc",RemotePort); (注意:为节省篇幅,程序省略异常处理, 下同。) 对于服务器: Socket clientSocket=null; clientSocket=checkServer.accept();

14:46
第3页
一、 Socket编程简介
信息在一个进程的Socket和另一个进程的 Socket间,以报文传输的形式进行交换。 发送端Socket,报文以队列的形式等待,直 到网络协议传输它们。当报文到达后,又在接收 端的Socket排队,等待接收进程以一定的系统 调用来接收它们。 在客户/服务模式下,服务器是监听请求的 进程,客户是发送请求的进程。一旦服务器进程 接收到了请求,它就试图去处理该请求,并且将 输出发送给客户。
(3)结果讨论 结果讨论(结果文档:TCPSocket结果.txt) 该程序的结果可分为三种情况: 情况一: 服务器未开启,或网络有问题——连接不 成功! 情况二: 与服务器连接成功,但是输入口令错误— —返回错误信息! 情况三: 与服务器连接成功,且口令输入成功—— 14:46 第25页 返回成功信息!
14:46
第7页
3、端口(Port)
当设置一个客户机或者服务器的时候, 必须选择一个无论客户机还是服务器都认 可连接的端口。 就像我们去拜会某人时,IP地址是他居 住的房子,而端口是他在的那个房间。 程序员可以在创建自己的服务器程序时 使用自定义的端口(除了系统默认的端口和 已占用的端口)。系统服务保留了使用端口 1到端口1024的权力。
14:46 第12页

第10章 Java网络程序设计

第10章  Java网络程序设计

import java.io.*;
import .*;
public class DatagramDemo{//发送数据端
public static void main (String [] args){
String host = "localhost";
DatagramSocket s = null;
try{
s = new DatagramSocket ();
byte [] buffer;
buffer = new String ("Send me a datagram").getBytes ();
InetAddress ia = InetAddress.getByName (host);
DatagramPacket dgp = new DatagramPacket (buffer, buffer.length, ia, 10000);
• Java提供了对TCP套接字的良好的支持,有两种套接字类: .Socket; .ServerSocket;
• 当编写连接到已有服务的客户端软件的时候使用Socket类。 • 当编写绑定到本地端口以提供服务的服务器软件的时候使用ServerSocket类。这是与
DatagramSocket的UDP工作方式不同的地方--在TCP中,连接服务器地和从客户端接 收数据的函数被分为两个独立的类。
• Internet网的数据传送有很多协议,如TCP/IP,UDP,FTP等,协议不同,具体到网络 通信程序,接收和发送数据部分的代码会有不同。
4
9.1.2 IP协议
IP协议负责把数据从一台计算机通过网络发送到另一台计算机。数据被分割成一小块一小块, 然后通过IP包发送出去。由于互联网链路复杂,两台计算机之间经常有多条线路,因此,路 由器就负责决定如何把一个IP包转发出去。IP包的特点是按块发送,途径多个路由,但不保 证能到达,也不保证顺序到达。 IP地址实际上是一个32位整数(称为IPv4),以字符串表示的IP地址如192.168.0.1实际上是把 32位整数按8位分组后的数字表示,目的是便于阅读。

第10章 Java网络编程

第10章 Java网络编程

第10章 Java网络编程在采用Java语言进行网络编程时,程序主要处理的是应用层的任务,但需要根据传输层所选择的协议,如TCP或UDP,而选用不同网络API完成实际的网络通信服务。

这些基本网络类主要包含在.*系统包中,该包屏蔽了网络底层的实现细节,使得编程者不必关心数据是如何在网络中传输的,而将精力集中在功能的实现上,简化了Java网络编程。

随着Java技术的发展,其网络方面的应用主要集中在以下几个方面:(1) HTTP协议访问根据URL获取Web文件;(2) Socket应用实现Client/Server模式的网络编程;(3) UDP数据报提供不可靠的UDP通信机制,如多媒体组播服务;(4) Servlet/JSP(Java server page,Java服务器网页)动态页面进行Web服务器端的动态网页编程;(5) JDBC(Java Database Connectivity,Java数据库连接) 通过网络访问关系型数据库;(6) RMI(remote method invocation,远程方法执行) 实现分布式的网络应用。

(7) Java小程序(Applet) Applet程序嵌套在超文本标记语言(Hypertext Markup Language,HTML)文件中,通过网络下载Applet程序代码到本地具有Java虚拟机的浏览器中执行;本章主要介绍超文本传送协议(Hypertext Transfer Protocol,HTTP)访问、Socket应用和UDP数据报这三方面的内容。

在展开详细的阐述之前,将就一些网络基础知识进行简单的介绍。

10.1网络基础在进行网络编程之前,程序员应该掌握与网络有关的知识,这里只介绍必备的网络基础知识。

10.1.1 TCP/IP网络编程的目的是直接或间接地通过网络协议与其他计算机进行通信。

网络编程中有两个主要问题,一个是如何准确地定位网络上的一台或多台主机,另一个就是找到主机后如何可靠高效地进行数据传输。

第10章(第2版)-Java程序设计教程(第2版)-牛晓太-清华大学出版社

第10章(第2版)-Java程序设计教程(第2版)-牛晓太-清华大学出版社

10.1.2 多线程编程的难点
3.调试程序
❖由于操作系统调度的随机性,每次多线程程序的运行顺序 都不一致。若程序有Bug,并不是每次运行都会导致错误的 结果,某些调度顺序可能会得到正确的结果。在调试程序时, 有可能该Bug一直都无法重现,大大增加了调试程序的难度。
10.2 线程的实现
❖10.2.1 创建Java线程 ❖10.2.2 Java线程的状态 ❖10.2.3 Java线程的优先级 ❖10.2.4 守护线程 ❖10.2.5 终止另一个线程
10.2.2 Java线程的状态
3.阻塞状态(Blocked) ❖当线程想要获得一个锁,而这个锁被其它线程占有,则该 线程进入阻塞状态。当其它线程释放了锁,而调度机制又允 许此线程获得该锁,则线程就从阻塞状态变更为可执行状态。
4.等待状态(Waiting) ❖为实现同步,线程执行时需要检测一些条件,只有条件得 到满足才能继续执行。若条件未得到满足,则线程进入等待 状态。当其它线程完成某些任务后,会发出一个信号唤醒处 于等待状态的线程,这些线程再重新检测条件是否得到了满 足。
10.1.1 多线程编程的优势
3.使GUI更有效率
❖使用单线程处理GUI事件,必须使用循环对随时可能发生 的GUI事件进行扫描,在循环内部除了扫描GUI事件外,还 要执行其他的程序代码。若这些代码太长,则GUI事件会被 “冻结”,直到这些代码被执行完为止。现代的GUI框架 (如SWING、AWT和SWT)中都使用了一个单独的事件分 派线程(event dispatch thread,EDT)来对GUI事件进 行扫描,可有效降低事件处理的复杂性。
10.1.2 多线程编程的难点
1.访问共享资源
❖有时多个线程会访问同一资源,若不做任何限制,让多个 线程以任意的调度顺序对该资源进行任意的读写操作,则可 能出现丢失修改、读脏数据等错误。因此,多线程访问共享 资源时,必须通过加锁实现互斥访问。若加锁方式不正确, 则可能造成死锁,使程序无法继续运行。

JAVA程序设计教程第10章 网络程序设计

JAVA程序设计教程第10章  网络程序设计

10.5 使用套接字Socket类
套接字Socket类,是通过C/S(客户端/服务器)方式 ,来实现网络中的两个程序间的连接。通过指定的IP地址以 及端口来实现互联。建立连接的两个程序间可以实现双向通 信,任何一方既可以接受请求,也可以向另一方发送请求, 因此利用套接字Socket类可以轻易的实现网络中数据的传 递。
10.3.1 URL类中常用的方法
创建URL类的对象,主要使用以下4种构造方法。
构造方法 URL(String str) URL(URL url,String str) URL(String str1,String str2,String str3) URL(String str1,String str2,int port,String str3) 作用 使用参数str指定的完整的Web地址,来创建一 个URL对象 使用指定的URL对象url作为基本地址,使用参 数str作为相对路径来创建一个URL对象 使用参数str1指定网络协议(例如http或ftp), 参数str2指定主机名,参数str3作为相对路径来创建一 个URL对象 使用参数str1指定网络协议(例如http或ftp), 参数str2指定主机名,参数port指定端口号,参数str3 作为相对路径来创建一个URL对象
10.1.1 什么是网络通信
计算机网络是把地理上分散、具有独立功能的计算机, 用通信线路和通信设备连接起来,以实现资源共享的系统。 计算机网络是由硬件系统、协议和软件组成。通信双方在通 信过程中,必须共同遵守约定和规则。按网络覆盖的地理范 围分类,分为局域网(LAN)(几十米至数公里)、城域网 (MAN)(几十公里至数百公里)、广域网(WAN)(数 百公里以上,甚至上万公里)。
10.3.2 使用URLConnetion类
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档