10-java网络编程.ppt_第1页
10-java网络编程.ppt_第2页
10-java网络编程.ppt_第3页
10-java网络编程.ppt_第4页
10-java网络编程.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1 作业6 取消删除和更新的数据库操作要求 MicrosoftODBCTextDriver只能添加数据 不能删除和修改数据 2 java网络编程 计算机学院通信软件工程中心张艳梅ymzhang 3 本章主要内容 1 如何利用网络资源 URL 在applet中使用网络资源URL 在应用程序中使用网络资源通过Socket进行客户端 服务器通信2 Servlets和JSPservlets的优点JSP示例 4 Web应用程序的两端 Web服务器 接收客户请求 进行处理 然后向客户返回结果 响应 5 URL UniformResourceLocators 统一资源定位符 Web上的每个资源都有唯一的地址 采用的就是URL格式 6 1 如何利用网络资源 java的主要能力之一就是提供对Internet和客户端 服务器编程的支持 J包提供了一套强大且易于使用的类来支持网络编程 网络由许多协议组合而成 大部分协议由通用计算机上运行的软件实现 java封装了这些协议问题 URL类包含一些方法获取Internet上特定URL相关联的资源Socket和ServerSocket类使我们能跟一个Internet主机直接连接DatagramPacket和DatagramSocket类支持更低层的互联应用程序开发 7 1 java网络常用类 InetAddress ProtocolException ServerSocket Socket URL MalformedURLException java lang java io Object IOException SocketException UnknownHostException UnknownServiceException 8 1 URL统一资源定位器 URL类负责创建一个URL对象 如果无效抛出MalformedURLException异常 URLurl try url newURL 80 moreli index html catch MalformedExceptione System out println MalformedURL url toString URL URL inurlSpace String openConnection URLConnection openStream InputStream 9 1 URL应用 applet中 从Javaapplet利用url下载网络资源特别容易 Applet类本身包含一些下载和显示网络资源的方法publicclassAppletextendsPanel publicAudioClipgetAudioClip URLurl AudioClip是AU格式的音频文件publicImagegetImage URLurl 返回GIF或JPEG格式的图像文件publicvoidplay URLurl 下载和播放一段音频剪辑 10 1 applet下载资源示例 利用url获取资源 再用多媒体显示方法放于网页importjava awt importjavax swing publicclassMyAppletextendsJApplet privateURLurl privateImageimgRef privateAudioClipaudio1 publicvoidinit url newURL http starbase trincoll edu sound au audio1 getAudioClip url 下载声音文件url newURL http starbase trincoll edu slide0 gif imgRef getImage url 下载图片 init publicvoidpaint Graphicsg g drawImage imgRef 10 10 this audio1 play 也可以直接用play url 来播放 11 1 applet程序演示 1 使用applet播放声音2 使用applet显示图像 用参数换图片 3 在applet中绘制图形4 在applet中弹出窗口5 使用applet滚动播放一组图片6 使用applet处理图像水面倒影 图片放大镜7 使用applet作经典小游戏 打飞机 8 使用applet作动画 烟花汇演 12 1 URL应用 java应用程序 applet对资源的利用严格受限 不能使用宿主机存储使得它不能保存下载的文件 且只能从源主机上下载文件使用Java应用程序下载web资源 和从磁盘读取文件十分相似URL类包含openStream 方法 可从与URL相连的资源中打开一个输入流InputStream 不管是音频 图像 文本或是其他文件 程序都可从这个输入流中读取数据 13 1 应用程序下载资源示例 1 java应用程序下载web资源的通用算法importjava io publicvoidreadWebData URLurl throwsIOException privateInputStreamdata try data url openStream 打开与URL相关联资源的输入流 读取文件数据data close catch IOExceptione System out println e getMessage 打开输入流会抛出异常 14 1 应用程序下载资源示例 2 java应用程序中下载和显示图片importjava io privateImageimgRef privateAudioClipaudio1 try imgRef Toolkit getDefaultToolkit getImage url 使用工具Toolkit类下载图片audio1 Toolkit getDefaultToolkit getAudioClip url 使用工具Toolkit类下载音频文件audio1 play repaint 刷新窗口 显示图片和声音 catch IOExceptione System out println e getMessage 下载资源会抛出异常 15 1 java下载网络资源程序演示 1 使用url类下载网络文件2 源代码 16 1 客户端 服务器通信程序 通过URL获取的免费开放资源是有限的 重要信息多以服务的方式提供轻而易举便能搭接网络 是java最强大的威力之一 网络通信方法和文件读写极为相似 只不过这个 文件 位于网络中某台机器 且这台机器有权决定你所请求的信息如何处理 客户端 服务器通信框架 与对端建立网络通信socket 连接输入输出流到对端 读写数据 关闭socket 服务器 客户端 流 17 1 Socket网络套接字 Socket 套接字 是两个程序通过网络通信的一个简单信道 利用协议支持客户端和服务器之间的双工通信 1 服务器程序根据协议在某个端口创建一个ServerSocket 等待客户端的请求 2 客户端创建一个Socket 尝试和已知的服务器端口发出连接请求 3 服务器程序收到并认可客户端的Socket 连接建立 服务器程序为Socket创建输入输出流 开始互传数据 4 客户端为Socket创建输入输出流 开始交换信息 5 客户端关闭Socket 服务器继续等待下一个请求 18 1 网络版小棍游戏 1 服务器端程序 创建线程子类 覆盖其run方法 importjava io publicclassNimServerextendsThread privateServerSocketport privateSocketsocket publicNimServer intport intbacklog try port newServerSocket port backlog catch IOExceptione e printStackTrace publicvoidrun try while true socket port accept providService socket socket close while catch IOExceptione e printStackTrace run 线程类 并发运行 19 1 网络版小棍游戏 2 服务器端程序 创建服务并启动服务providServicepublicstaticvoidmain Stringargs NimServerserver newNimServer 10001 5 server start main privatevoidprovidService Socketsocket Stringstr intuserTakes 0 OneRowNimnim newOneRowNim try writeToSocket socket HiNim nim report n str readFromSocket socket userTakes Integer parseInt str nim takeSticks userTakes if nim gameOver writeToSocket socket nim report n catch IOExceptione e printStackTrace providService 20 1 网络版小棍游戏 3 服务器端或客户端程序 输入输出流操作privatevoidwriteToSocket Socketsock Stringstr throwsIOException oStream sock getOutputStream for intk 0 k str length k oStream write str charAt k writeToSocket privateStringreadFromSocket Socketsocket throwsIOException iStream sock getInputStream Stringstr charc while c char iStream read n str str c returnstr readFromSocket 21 1 网络版小棍游戏 4 客户端程序 类似但简单publicclassNimClientextendsThread privateSocketsocket privateKeyboardReaderkb newKeyboardReader publicNimClient Stringurl intport try socket newSocket url port catch IOExceptione e printStackTrace System exit 1 publicvoidrun try requestService socket socket close catch IOExceptione e printStackTrace run publicstaticvoidmain Stringargs NimClientclient newNimClient java trincoll edu 10001 client start main 线程类 并发运行 22 1 网络版小棍游戏 5 客户端程序 请求服务requestServiceprivatevoidrequestService Socketsocket throwsIOException StringservStr readFromSocket socket kb prompt NimServer servStr n StringuserStr do userStr kb getKeyboardInput writeToSocket socket userStr n servStr readFromSocket socket kb prompt NimServer servStr n whileservStr indexOf GameOver 1 23 javaSocket网络通信程序演示 1 使用javasocket编写的简单聊天室聊天室服务器程序聊天室客户端程序 24 2 Web服务器程序开发 Web体系是一个巨大的主从系统 客户端程序开发plug in插件 解决80 问题applet 解决剩余20 较难的问题 砂盒ActiveX 在IE浏览器上 百无禁忌服务器端程序开发web服务器提供CGI实现交互javaservlets及JSP 消除浏览器不同注 java世界 常以let字尾表示小东西 25 2 javaServlet servlet是一个运行在web服务器上的java程序 使用http协议处理web页面 用途 在服务端处理页面任务 返回跨平台的html页面servlet和applet的区别 applet在客户端执行其所有的任务 而servlet在服务器端执行它的处理过程 servlet相比applet的优点 1 减少了传送的数据量 applet要传送字节码 servlet只传送处理结果 2 减少了相关平台问题 applet插件 3 不受安全和隐私约束 applet严格受限 servlet直接访问服务器的大型数据库和其他资源 26 Servlet的优点 执行效率高 Servlet默认是以多线程模式执行的 进入门槛低 拥有跨平台执行能力 27 HTTP协议 获取文件 HTTP 获取图像 bar01 jpgHTTP 1 1 HTTP 1 1200OK 收到的文件 超文本传输协议无状态协议通过Internet发送请求消息和响应消息请求 分GET方法和POST方法使用端口接收和发送消息 默认80端口 客户发送一个HTTP请求 服务器会用一个HTTP响应作出应答 28 GET请求方法示例 用GET方法发送的数据会追加到URL后面 在浏览器地址栏中显示出来 所以你发送的数据会完全暴露 29 Servlet和Tomcat Servlet没有main 方法 它们受控于另一个Java应用 这个Java应用称为容器 Container Tomcat就是这样一个容器 Web服务器应用得到一个指向servlet的请求时 服务器不是把这个请求交给servlet本身 而是交给部署该servlet的容器 要由容器向servlet提供HTTP请求和响应 而且要由容器调用servlet的方法 如doPost 或doGet 30 安装Tomcat 下载地址 http tomcat apache org将apache tomcat 7 0 14 windows x86 zip解压到你想要安装tomcat的目录下启动tomcat运行安装目录 apache tomcat 7 0 14 bin startup bat打开浏览器 输入http localhost 8080 如果看到tomcat的web页面就说明你的安装成功了 31 在MyEclipse中配置开发部署服务器 在MyEclipse开发平台上 选择菜单window Preference 在出现的对话框的左边树状菜单中选择MyEclipse节点 点击ApplicationServers节点 选择Tomcat5 32 Servlet的生命周期 33 Servlet的继承层次 34 简单Servlet的结构 这是一个显示HttpServletRequest和HttpServetResponse接口一些方法的简单Servlet 需要导入的包 用于处理GET请求的方法 创建设置文本格式和PrintWriter对象的方法以将数据发送给客户端 用于处理POST请求的方法 35 开发一个Servlet 创建一个web应用程序根 myServlet以及web程序的目录结构 编写FirstServlet java 并编译成class文件 编译时要把Tomcat目录 lib servlet api jar添加到classpath路径中 把它挎贝到learning WEB INF classes 目录下 配置好web xml文件 把文件夹拷贝到tomcat目录 webapps 目录下启动tomcat打开IE输入http localhost 8080 myServlet test 36 Web应用程序目录结构 文档根目录 books tld 也叫上下文根 部署描述文件 DD 存放标签文件 tag 存放编译好的类文件 存标签库描述符文件 存放本应用程序需要使用的jar文件 37 Servlet的部署 web xml文件中配置Servlet 用来定义一个Servlet实例 用来定义一个URL和一个servlet的对应关系Servlet实例名称Servlet类的全限定名 即包名的类名 Servlet实例名称Servlet所对应的URL 修改一次web xml配置就要重启一次服务器 firstServletFirstServletfirstServlet test 38 LoginServle java代码 publicvoiddoGet HttpServletRequestrequest HttpServletResponseresponse throwsServletException IOException response setContentType CONTENT TYPE response setCharacterEncoding GB2312 PrintWriterout response getWriter try Stringusername request getParameter username Stringpassword request getParameter password if username equals password equals userInterface response else out println username 欢迎第一次使用Servlet out println 今天的日期是 newDate catch Exceptione userInterface response out close publicvoiduserInterface HttpServletResponseresponse throwsIOException PrintWriterout response getWriter out println out println loginservlet out println out println 欢迎第一次

温馨提示

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

评论

0/150

提交评论