- 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服 务器(服务器)构成,两者之间采用超文本传送协议( HTTR进行通信,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浏览器使用的
HTT P版本。
应答:Web浏览器提交请求后,通过 HTTP协议传送给 Web服务器。Web服
务器接到后,进行事务处理,处理结果又通过 HTTP传回给 Web浏览器,从而在
Web浏览器上显示出所请求的页面。
关闭连接:当应答结束后, Web浏览器与 Web服务器必须断开,以保证其它
Web浏览器能够与 Web服务器建立连接。
客户端采用的是浏览器,整个系统需要设计的是服务器
服务器的用例描述
服务器实现的功能可以描述为3个用例
允许建立连接
提供服务
允许断开连接
服务器的活动图
整个工作流程如下
荻取远端用户发送服务请求
三
三、详细设计及代码
服务器对象的静态关系
服务器对象的静态关系
服务器对象的静态关系
O
服务器类的设计
public class Main 启动程序
public class Frame extends JFrame implements ActionListener 实现系统管理员
查看服务器状态
public class Net实现允许建立连接,提供服务,允许断开连接
代码
public class Main 启动程序
package server;
// http://ylx-PC:1111/index.html
public class Main { // 接口的实现
public static void main(String[] args) { // 启动程序
new Frame(); // 建立窗体
} }
public class Frame extends JFrame implements ActionListefieffi 系统管理员查 看服务器状态
package server;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
import javax.swing.*;
public class Frame
extends JFrame implements ActionListener {
// 建立窗体组件
JPanel
btnPan =
new JPanel( new
FlowLayout(FlowLayout.
CENTER));
private
JLabel
listenPortLb = new
JLabel( 设置监听端口 :);
private
JLabel
tishi = new JLabel(
Webserver 信息:);
private );
JLabel
tian = new JLabel(
private
JTextField
portTf = new JTextField( 8080 , 4); // 设置
默认端口号
JButton
contro l Btn
=new JButton(
开始);//设置按钮名称
JButton
clearHintBtn = new JButton(
清空);
private
JTextArea
hintTa = new JTextArea( 动态监测服务信息 \n);
private
Net net
;
public
Frame() {
initComponent();
//初始化界面
net }
=new Net( this );
private void initComponent() { // 初始化所有界面组件
//设置窗体大小bui
文档评论(0)