目标:采用Socket和多线程技术,实现一个javaWeb服务器,加深对HTTP的认识。
新建java项目webServer新建java文件WebServer.javaProcessor.java  一、HTTP协议的作用原理  WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是Web网页。
WWW的工作基于客户机/服务器计算模型,由Web浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信。
HTTP协议是基于TCP/IP协议之上的协议,是Web浏览器和Web服务器之间的应用层协议,是通用的、无形态的、面向对象的协议。
HTTP协议的作用原理包括四个步骤:  (1)连接:Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功。
  (2)请求:Web浏览器通过socket向Web服务器提交请求。
HTTP的请求一般是GET或POST命令(POST用于FORM参数的传递)。
GET命令的格式为:  GET路径/文件名HTTP/1.0  文件名指出所访问的文件,HTTP/1.0指出Web浏览器使用的HTTP版本。
  (3)应答:Web浏览器提交请求后,通过HTTP协议传送给Web服务器。
Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面。
  例:假设客户机与www.mycompany.com:8080/mydir/index.html建立了连接,就会发送GET命令:GET/mydir/index.htmlHTTP/1.0。
主机名为www.mycompany.com的Web服务器从它的文档空间中搜索子目录mydir的文件index.html。
如果找到该文件,Web服务器把该文件内容传送给相应的Web浏览器。
  为了告知Web浏览器传送内容的类型,Web服务器首先传送一些HTTP头信息,然后传送具体内容(即HTTP体信息),HTTP头信息和HTTP体信息之间用一个空行分开。
常用的HTTP头信息有:  ①HTTP1.0200OK  这是Web服务器应答的第一行,列出服务器正在运行的HTTP版本号和应答代码。
代码“200OK”表示请求完成。
  ②MIME_Version:1.0  它指示MIME类型的版本。
  ③content_type:类型  这个头信息非常重要,它指示HTTP体信息的MIME类型。
如:content_type:text/html指示传送的数据是HTML文档。
  ④content_length:长度值  它指示HTTP体信息的长度(字节)。
  (4)关闭连接:当应答结束后,Web浏览器与Web服务器必须断开,以保证其它Web浏览器能够与Web服务器建立连接。
  二、Java实现Web服务器功能的程序设计  根据上述HTTP协议的作用原理,实现GET请求的Web服务器程序的方法如下:  (1)创建ServerSocket类对象,监听端口8080。
这是为了区别于HTTP的标准TCP/IP端口80而取的;
  (2)等待、接受客户机连接到端口8080,得到与客户机连接的socket;
  (3)创建与socket字相关联的输入流instream和输出流outstream;
  (4)从与socket关联的输入流instream中读取一行客户机提交的请求信息,请求信息的格式为:GET路径/文件名HTTP/1.0  (5)从请求信息中获取请求类型。
如果请求类型是GET,则从请求信息中获取所访问的HTML文件名。
没有HTML文件名时,则以index.html作为文件名;
  (6)如果HTML文件存在,则打开HTML文件,把HTTP头信息和HTML文件内容通过socket传回给Web浏览器,然后关闭文件。
否则发送错误信息给Web浏览器;
  (7)关闭与相应Web浏览器连接的socket字。
2017/3/13 16:21:20 37KB Web服务器 java实现
1
ACE自适配通信环境(AdaptiveCommunicationEnvironment)是一种面向对象(OO)的工具包,它实现了通信软件的许多基本的设计模式。
ACE的目标用户是在UNIX和Win32平台上开发高功能通信服务和应用的开发者。
ACE简化了使用进程间通信、事件多路分离、显式动态链接和并发的OO网络应用和服务的开发。
通过在运行时将服务与应用动态链接进应用,并在一个或多个进程或线程中执行这些服务,ACE使系统的配置和重配置得以自动化。
本论文描述ACE的结构和功能,并使用来自像电信、企业级医学成像和WWW服务这样的领域的例子阐释核心的ACE特性。
ACE可以自由使用,并正在被用于许多商业项目(比如爱立信、Bellcore、西门子、摩托罗拉、柯达,和McDonnellDouglas),以及许多学院和工业研究项目。
ACE已被移植到多种OS(操作系统)平台上,包括Win32和大多数的UNIX/POSIX实现。
此外,同时有C++和Java版本的ACE可用。
2015/2/27 11:45:36 5.72MB ACE 入门 中文 c++
1
《DesignbyContract原则与实践》是国内第一本系统阐述“契约式设计”思想和方法的译作,深刻理解和充分发挥契约在面向对象软件设计中的作用。
《DesignbyContract原则与实践》通过Eiffel、Java实例透彻分析DbC思想方法。
引入DbC六大原则和六大原则,指导你的应用实践。
精辟分析DbC在C/C++语言中的应用。
2021/11/13 6:11:04 9.84MB 契约
1
即时通讯(InstantMessaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷;
服务提供商也提供了越来越丰富的通讯服务功能。
Java是当前比较流行的开发语言之一,它有着自己的易用特点与功能优势,比如跨平台、安全性、多线程、网络Socket编程、数据流概念等方面,因此通过对开源即时通讯LinuxQQ的研究和分析,基于Java语言和J2EE规范设计了一个即时通讯工具JICQ(JavaforIseekyou),并对其体系结构、构成模块及系统关键技术进行了分析与设计。
在系统设计与建模过程中,使用了UML和面向对象的分析、设计方法,并使用Rose作为建模工具;
本系统基于j2se1.5,j2ee1.4,使用Eclipse等作为开发工具,在开发过程中用到了时下流行的重构开发方法,优化了系统的设计。
力图使系统具有安全、高效、实用、支持在不同系统平台运行等特点。
2016/5/12 9:28:54 4.59MB 即时通讯
1
1.某酒店订房系统描述如下:(1)顾客可以选择在线预订,也可以直接去酒店通过前台服务员预订;
(2)前台服务员可以利用系统直接在前台预订房间;



2.现有一医院病房监护系统:(1)病症监视器安置在每个病房,将病人的病症信号实时传送到地方监视平台进行分析处理;
(2)在中心值班室里,值班护士使用地方监视平台对病人的病症进行监控;
(3)根据医生的要求,系统随时打印病人的病情报告,定期更新病历;
(4)当病人的病症出现异常时,系统会立即自动报警,并实时打印病人的病情报告,立即更新病历。
要求根据现场情景,对医院病房监护系统进行需求分析,建立系统的Usecasemodel。
2019/11/22 15:52:06 42KB uml类图 实验结论
1
该系统是一个基于JavaEE规范B/S架构下的WEB电子商务系统,采用MySQL作为后台数据库,运用JDBC数据库访问技术,通过Tomcat应用服务器实现电子商务网站的基本功能。
该系统综合运用面向对象编程的思想,运用三大框架,通过JavaScript、jQuery以及Ajax技术,在Servlet,JSP服务的基础上完成电子商务平台的各项功能,并且使用CSS和HTML对界面进行美化编辑和功能排布,突出展示了电子商务平台清新、便捷、迅速和功能丰富的特点。
该系统功能全面,包括了注册、登录、购物车、商品搜索、订单生成以及个人信息管理等功能。
此外,系统有着优秀的安全加密措施,保证用户的个人信息不会泄露。
同时系统还具备可升级能力,能够满足未来不断增长的用户需求。
本文阐述了电子商务交易系统详细的设计和实施过程,从功能模块的实现到数据库的应用,从系统的测试与分析到系统的改进与整体功能评估,从界面风格的确定到界面风格的设计与实施,本文一一进行解析。
2016/7/18 17:32:01 35.1MB java ajax
1
Perl,一种功能丰富的计算机程序语言,运转在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。
本文档是Perl语言的全部语法和Perl6的开发实例集合,包括面向对象、文本处理和多线程等。
2021/3/25 6:56:03 727KB Perl
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡