ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:116.01KB ,
资源ID:615606      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/615606.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(web服务器设计论文.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

web服务器设计论文.docx

1、web服务器设计论文Web服务器设计I/O接口的实现学生姓名:xx 指导老师:XXX摘 要 Web服务器的实现主要是服务器端接受并响应客户端的请求,本次设计是在eclipse开发平台上使用Java编程技术设计Web服务器。该Web服务器的设计分为两大部分,分别是Web服务器面板的设计与Web服务器I/O接的实现,在本次课程设计中我们首先要建立一个Web服务器的用户面板,使用户能够直观的看到Web服务器的工作,然后实现这个服务器的通信,即实现数据传送。最后通过对这两个模块的设计及其运行,我们通过在Web浏览器中输入Web服务器的socket,能够实现Web服务器与Web浏览器之间的通信。关键字

2、AWT组件;Swing组件;Socket套接字;异常处理机制;线程;流1 引 言长期以来,人们只是通过传统的媒体(如电视、报纸、杂志和广播等)获得信息。但随着计算机网络的发展,人们想要获取信息,已不再满足于传统媒体那种单方面传输和获取的方式,而希望有一种主观的选择性,而由于计算机网络的发展,信息的获取变得非常及时、迅速和便捷。 其中,WWW 技术解决了远程信息服务中的文字显示、数据连接以及图像传递的问题,使得 WWW 成为 Internet 上最为流行的信息传播方式。 现在,Web 服务器成为 Internet 上最大的计算机群,Web 文档之多、链接的网络之广,令人难以想象。可以说,Web

3、为 Internet 的普及迈出了开创性的一步,是近年来 Internet 上取得的最激动人心的成就。1.1课程设计的目的通过本次课程设计,加深对计算机网络方面相关的网络知识的理解,熟悉Java语言编程以及eclipse开发平台的运用。深入理解Web服务器的工作原理,以及如何运用Java语言在eclipse平台上来进行编程设计和实现。掌握运用Java语言进行面板设计、实现网络连接的方法,在学习理解基本理论知识的同时锻炼独立思考解决问题的能力,并且培养综合运用专业及基础知识,理论联系实际,提高自己动手能力。1.2课程设计的要求(1)按要求编写课程设计报告书,能正确阐述设计结果。(2)通过课程设计

4、培养学生严谨的科学态度,认真的工作作风和团队协作精神。(3)学会文献检索的基本方法和综合运用文献的能力。(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。1.3设计平台Eclipse设计平台本次Web服务器的设计是通过Java语言的程序设计,在Eclipse平台上实现的。Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。 虽然大多数用户很乐于将 Eclipse 当

5、作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持

6、诸如 C/C+、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。2 设计原理本次课程设计是要设计一个Web服务器,主要分为两大块,一是图形用户界面的设计,一是I/O接口的实现,即实现Web服务器与客户端(浏览器)之间的通信。本课程设计只简单说明一下图形界面的设计流程,着重于介绍I/O接口的实现这一块。在实现I/O接口(服务器与浏览器的通信)中,我们主要运用了Socket套接字、Java线程、Java异常处理机制、输入输出流的设计原理和方法,下面会着重的一一介绍。2.1图形用户界面设计

7、 AWT组件。早期的JDK版本中提供了Java抽象窗口工具集(Abstract Window Toolkit,AWT),其目的是为程序员创建图形用户界面提供支持。AWT组件定义在java.awt包中,包括组件类、组件布局类等。其中:组件(component)是构成图形用户界面的基本成分和核心元素。组件类(Component)是一个抽象类,是AWT组件类层次结构的根类,实际使用的组件都是Component类的子类。Component类提供对组件操作的通用方法,包括设置组件位置、设置组件大小、设置组件字体、响应鼠标或键盘事件、组件重绘等等。 Swing组件。Swing组件包含了大部分与AWT对应的

8、组件,而多数的Swing组件相对于AWT组件而言是以“J”开头。Swing组件与AWT组件的用法基本相同,大多数的AWT组件只要在其类名前加J即可转换成Swing组件。Swing组件与AWT组件最大的不同是,Swing组件在实现时不包含任何本地代码,因此Swing组件可以不受硬件平台的限制,而具有更多的功能。由于所有Swing组件均是以AWT的Container类为基础开发的,因此Swing的关键技术还是AWT,Swing库是抽象窗口工具AWT库的扩展,提供了比AWT更多的特性和工具,用于建立更复杂的图形用户界面1。2.2 套接字Socket Socket(套接字)是TCP/IP的编程接口,即

9、利用Socket提供的一组API就可以变成实现TCP/IP协议。网络上计算机任何一个应用程序都可以通过Socket与其他计算机进行通行。Socket是通信端点的一种抽象,它提供了一种发送和接收数据的机制2。 Socket所要完成的通信就是基于连接的通信,建立连接所需的程序分别运行在客户端和服务器端,其主要步骤为:(1) 建立连接:首先客户端程序申请连接,而服务器程序监听所有端口,判断是否有客户端程序的服务请求,当客户端程序请求和某个端口连接时,服务器就将Socket连接到该端口上,此时服务器和客户程序之间建立了一个专用的虚拟连接。(2) 数据通信:客户程序可以像Socket写入请求,服务器程序

10、处理请求并把处理结果通过Socket送回。(3) 拆除连接:通信结束,将所建立的虚拟连接拆除。ServerSocket类和Socket类分辨应用于服务器端和客户端的Socket通信,其中,创建了一个ServerSocket对象就创建了一个监听,为了能够随时监听客户端的请求,可以引用ServerSocket对象的accept()方法。而创建一个Socket对象用于与服务器建立连接,使用指定的端口号使得服务器在捕获到客户端的请求时,根据端口号来完成指定的服务,Socket对象创建成功后,就可以在客户机与服务器之间建立一个连接,并通过这个连接在两个端口之间传送数据。2.3 Java异常处理机制异常是

11、指应用程序在运行过程中发生的不正常情况,或发生错误。任何用计算机程序设计语言编写的程序,在运行过程中都不可避免的可能出现各种各样的异常,而程序运行中的异常可以预料但是不可避免,所以我们有必要运用一个异常处理的机制来处理这些有可能出现的异常情况3。异常处理的方式有两种:第一种方式是使用trycatchfinally结构对异常进行捕获和处理;地二种方式是通过throws和throw抛出异常,本设计中使用的是前者。trycatchfinally异常处理方式的基本结构为:trycatch()finally其中:try:将有可能出现异常的代码块括起来,预处理。程序运行中,如果该块内的代码没有出现任何异常

12、,将正常执行,后面的各catch块不起任何作用;如果该块内的代码出现了异常,系统将终止Try块代码的执行,自动跳转到所发生的异常类对应的catch块中,执行该块代码。catch():出现异常,捕捉处理。一个try块可以对应多个catch块,用于对多个异常进行捕获。如果要捕获的多个异常之间没有父子关系,各类catch块的顺序无关紧要,但如果他们之间有父子关系,应该将子类的catch放在父类的catch之前,即从小到大排列catch。finally:无论有没有异常,都会执行,当没有出现异常时,先执行try内代码,再执行finally代码;当出现异常执行完对应异常类的catch块后,再执行final

13、ly块。一般情况用于资源(net,io)的回收。2.4 Java线程每个java程序都有一个主线程,要实现多线程,必须在主线程中创建新的线程。Java中,线程用Tread类及其子类的对象来表示。每个线程都要经历新建、运行、中断和死亡四种状态。线程的基本实现方法为:1构造线程new;2启动线程Start( );3运行线程 run( ),因此我们可以得到一个Java线程的建立及运行的基本结构为:new Thread() public void run() .start() 多线程机制是Java语言的又一重要特征,使用多线程技术可以使系统同时运行多个执行体,这样可以加快程序的响应时间,提高计算机资源

14、的利用率。实现多线程有两个途径,一种是用Thread类的子类创建来实现,另一种是通过实现Runnable接口的类来实现。在本设计中是用创建Thread类的子类来实现多线程客户端与服务器端的通信的。当编写Thread类的子类时,可以在子类中重写父类的run方法,该方法中包含了线程的操作。这样程序需要建立自己的线程时,值需要建立一个已定义好的Thread子类的实例就可以了。当创建的线程调用start()方法开始运行时,run()方法将被自动进行4。2.5 流Java的输入/输出是以流的方式来处理的,流是在计算机输入、输出操作中流动的数据序列。输入流代表从外设流入计算机的数据序列,输出流代表从计算机

15、流向外设的数据序列。流式输入、输出的特点是数据的获取和发送均按数据序列进行,每一个数据都必须等待排在它前面的数据读入或送出之后才能被读写,每次操作处理的都是序列中剩余的未读写数据中的第一个,而不能随意选择输入输出的位置。序列中的数据既可以是未经加工的原始二进制数据,也可以是按一定编码处理后符合某种格式规定的特点数据,如字符数据,所以Java中的流有位流(字节流)和字符流之分5。本次课程设计中运用的是字符流,而要实现字符流的传输,其设计顺序为:获得文件输入输出流;使用转换流将字节流转为字符流;包装;读写;输出流清除缓存;关闭流。 3设计步骤本次课程设计进行Web服务器的设计与实现,其步骤分为两大

16、步,先要进行用户图形界面的设计与实现,由于它不是本次设计报告的侧重点,故在以下的步骤中只会稍加说明。而本文的重点在于说明Web服务器I/O端口的实现,即Web服务器是如何实现与客户端(浏览器)的连接与数据传输的,故在下面会详细的说明。3.1 设计流程图通过分析设计任务,本次课程设计的大致流程如图3.1所示图 3.1 Web服务器设计流程图3.2 创建用户界面 首先,创建一个顶级的容器组件,一般是继承框架(Frame)的应用程序主窗口,它包含边框、标题栏、控制菜单和内容面板的容器,以下程序段主要是将组件声明并且实例化。 public class WebServerFrame extends JFrame implements ActionListener priv

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1