- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
精选范本
精选范本 ,供参考!
精选范本
精选范本 ,供参考!
精选范本
精选范本 ,供参考!
简单web服务器的设计与实现
设计内容及设计要求
WWW的工作基于客户机/服务器计算模型,由Web浏览器(客户机)和Web服 务器(服务器)构成,两者之间采用超文本传送协议( HTTP进行通信,HTTP协议 的作用原理包括四个步骤:连接,请求,应答 ,关闭应答。
设计内容
Web服务器是web中的关键部件,设计一个简单的 Web服务器,为 用户提供简单的信息服务。
设计要求
本实验要求完成一个简单的 web 服务器的设计与实现,能够通过 HTTP Get命令获得一个简单的HTML文件。
设计目的
通过 web 服务器的设计与实现,可以达到以下目的:掌握网络编程 的知识与技能;掌握HTTP协议的相关知识;熟悉网络软件的开发过程, 锻炼解决实际问题的能力。
总体设计
HTTP协议的作用原理包括四个步骤:
连接: Web 浏览器与 Web 服务器建立连接,打开一个称为 socket (套接字) 的虚拟文件,此文件的建立标志着连接建立成功。
请求:Web浏览器通过socket向Web服务器提交请求。HTTP的请求一般是
GET或POST命令(POST用于FORM参数的传递)。GET命令的格式为: GET路径
/文件名 HTTP/1.0 文件名指出所访问的文件, HTTP/1.0 指出 Web 浏览器使用的
HTTP版本。
应答:Web浏览器提交请求后,通过 HTTP协议传送给 Web服务器。Web服 务器接到后,进行事务处理,处理结果又通过 HTTP传回给 Web浏览器,从而在
Web 浏览器上显示出所请求的页面。
关闭连接:当应答结束后, Web 浏览器与 Web 服务器必须断开,以保证其它
Web 浏览器能够与 Web 服务器建立连接。
客户端采用的是浏览器,整个系统需要设计的是服务器
服务器的用例描述
服务器实现的功能可以描述为3个用例 允许建立连接
提供服务
允许断开连接
服务器的活动图
整个工作流程如下
三、详细设计及代码
服务器对象的静态关系
服务器对象的静态关系
服务器类的设计
public class Mai n 启动程序
public class Frame exte nds JFrame impleme nts Actio nListe ner 实现系统管理员 查看服务器状态
public class Net实现允许建立连接,提供服务,允许断开连接
代码
public class Mai n 启动程序
package server;
// http://ylx-PC:1111/i ndex.html
public class Main { // 接口的实现
public static void main( Stri ng[] args) {
new Frame(); // 建立窗体
}
}
//启动程序
public class Frame extends JFrame implements ActionListener 实现系统管理员查 看服务器状态
package server;
import java.awt.*;
import java.awt.eve nt.*;
import java.util.Date;
import javax.sw in g.*;
public
class Frame
exte nds JFrame impleme nts Acti on Liste ner {
// 建立窗体组件
JPa nel
btnPan
new JPa nel( new
CENTER));
private
JLabel
liste nPortLb = new JLabel(
设置监听端口 : “ );
private
JLabel
tishi
=new JLabel(
Webserver
信息:);
private
);
JLabel
tia n
=new JLabel(
I!
private
JTextField
portTf = new JTextField(
8080 , 4); // 设置
默认端口号
JButt on
con trolBtn
=new JButt on(
开始);
//
设置按钮名称
JButt on
clearHi ntBt n
=new JButt on(
清空
);
private
JTextArea
hintTa = new JTextArea(
动态监测服务信息\n);
private
Net net
J
public
Frame() {
in itComp onen t();
//初始化界面
FlowLayout(FlowLayout.
this );
net =
文档评论(0)