实验十三--Web服务器的实现.docx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 十三 Web 服务器 实现
- 资源描述:
-
实验十三 Web服务器的实现 一、实验目的及任务1、实验目的 熟悉简单网络的搭建与基本配置;熟悉socketn多线程编程; 熟悉JDK编程工具的基本使用;熟悉HTTP协议; 熟悉Web服务器的基本工作原理和配置。 2、实验任务 (1)以JDK为开发工具,利用Socket通信机制实现一个多线程的WEB服务器,该服 务器具有以下功能: <能够并行服务于多个请求。 。对于每个请求,显示接收到的HTTP请求报文的内容,并产生适当的响应(假设 找到用户请求对象,那么返回该对象。否那么发送一个包含适当提示信息的响应消 息,从而可以在浏览器窗口中显示过失信息。) (2)搭建一个简单的网络环境,调试web服务器程序。 二、实验环境操作系统:Windows2000 server 开发工具:JDK或其他开发工具实验设备:交换机(一台)、计算机(两台)、网线假设干 三、实验相关知识点(本课程综合或多课程综合)1、网络基本原理(如:HTTP协议、Web服务器、Socket、TCP、UDP等) 2、网络服务器基本配置(简单C/S网络的组建、web服务器的基本配置等)3、程序设计(sockel编程、多线程程序设计等) 四、实验实施步骤1、开发程序 2、搭建简单的C/S网络3、配置并测试web服务器程序 五、实验报告内容1、写出实现“一、实验要求”中所述功能的Web服务器程序的结构框图。 2、写出实现“一、实验要求”中所述功能的Web服务器程序的代码。 3、总结程序设计、调试中出现的问题及其解决方法。 4、实验心得。 附件一:Java的多线程编程一、理解多线程 多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个 线程,彼此间互相独立。 线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,IX 别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这 使得线程间的通信远较进程简单。 多个线程的执行是并发的,也就是在逻辑上“同时7而不管是否是物理上的“同时”。如 果系统只有一个单核CPU,那么真正的“同时”是不可能的。但是由于CPU的处理速度非 常快,用户感觉好像自己的程序连续运行一样。因此我们也不用关心它,只需要设想各 个线程是同时执行即可。 多线程和传统的单线程在程序设计上最大的区别在于,由于各个线程的控制流彼此独立, 使得各个线程之间的代码是乱序执行的,由此带来的线程调度,同步等问题,将在以后 探讨。 二、在Java中实现多线程为了创立一个新的线程,我们需要做些什么?很显然,我们必须指明这个线程所要执行 的代码,而这就是在Java中实现多线程我们所需要做的一切。作为一个完全面向对象的 语言,Java提供了类来方便多线程编程,这个类提供了大量的方法来 方便我们控制自己的各个线程。 Thread类最重要的方法是run(),它为Thread类的方法start()所调用,提供我们的线 程所要执行的代码。为了指定我们自己的代码,只需要覆盖它。 1、方法一:继承Thread类,覆盖方法run()我们在创立的Thread类的子类中重写run(),加入线程所要执行的代码即可。 下面是一个例子: public class My Th read extends Thread (int count= 1, number; public MyThread(int num) {number = num; ("创立线程"+ number);} public void run() {while(true) { (“线程"+ number + ":计数"+ count);if(++count== 6) return; }) public static void main(String args[]) {for(int i = 0; i < 5; i++) new MyThrcad(i+1).start(); )) 这种方法简单明了,符合大家的习惯,但是,它也有一个很大的缺点,那就是如果类已 经从一个类继承(如小程序必须继承自Applet类),那么无法再继承Thread类(Java不允 许多重继承,即一个类的父类只能有一个),这时如果又不想建立一个新的类,应该怎么 办呢? 不妨来探索一种新的方法:不创立Thread类的子类,而是直接使用它,那么我们只能 将我们的方法作为参数传递给Thread类的实例。这有点类似回调函数。但是Java没有 指针,我们只能传递一个包含这个方法的类的实例。那么如何限制这个类必须包含这一 方法呢?使用接口。Java提供了接口 来支持这种方法。 2、方法二:实现Runnable接口Runnable接口只有一个方法run(),我们声明自己的类实现Runnable接口并提供这一 方法,将我们的线程代码写入其中,就完成了这一局部的任务。 但是Runnable接口并没有任何对线程的支持,我们还必须创立Thread类的实例,这 一点通过 Thread 类的构造函数 public Thread(Runnable target);来实现。 下面是一个例子: public class My Th read implements Runnable {int count= 1, number; public MyThread(int num) {number = num; ("创立线程"+ number);) public void run() {while(true) { (“线程 ” + number + ”:计数 " + count);if(++count== 6) return; }} public static void main(String args(l) {for(int i = 0; i < 5; i++) new Thread(new MyThread(i+1 )).start(); )) 使用Runnable接口来实现多线程使得我们能够在一个类中包容所有的代码,有利于封 装,它的缺点在于,我们只能使用一套代码,假设想创立多个线程并使各个线程执行不同 的代码,那么仍必须额外创立类,如果这样的话,在大多数情况下也许还不如直接用多个 类分别继承Thread来得紧凑。 综上所述,两种方法各有千秋,大家可以灵活运用。 多线程的核心在于多个代码块并发执行,本质特点在于各代码块之间的代码是乱序执行 的。我们的程序是否需要多线程,就是要看这是否也是它的内在特点。假如我们的程序 根本不要求多个代码块并发执行,那自然不需要使用多线程;假如我们的程序虽然要求 多个代码块并发执行,但是却不要求乱序,那么我们完全可以用一个循环来简单高效地实 现,也不需要使用多线程;只有当它完全符合多线程的特点时,多线程机制对线程间通 信和线程管理的强大支持才能有用武之地,这时使用多线程才是值得的。展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




实验十三--Web服务器的实现.docx



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4744494.html