Java Socket编程(五) 简单的WEB服务器_Java编程

文章来源:aspcn 作者:孙雯

简单的WEB服务器

一个简单的WEB服务器将由列表9.2这样构建.当然,还必须要对方法和回应事件进行改进.简单的服务器不会分析和存储请求头.新的WEB服务器将分析和存储请求,为以后的处理作准备.为了达到这个目的,你必须有一个包含HTTP请求的类.

HTTPrequest类

列表9.5列出了一个完整的HTTPrequest类.这个类必须包括一个请求头所需的所有信息.

列表9.5.HTTPrequest类.

import java.io.*;
import java.util.*;
import java.net.*;
import NameValue;
/**
* 这个类有一个HTTP请求的所有信息
*/
public class HTTPrequest
{
public String version;
public String method;
public String file;
public Socket clientSocket;
public DataInputStream inbound;
public NameValue headerpairs[];
/**
* 建立一个这个类的实例
*/
public HTTPrequest()
{
version = null;
method = null;
file = null;
clientSocket = null;
inbound = null;
inbound = null;
headerpairs = new NameValue[0];
}
/**
* 加入一个名称/值对到核心数组
*/
public void addNameValue(String name, String value)
{
try
{
NameValue temp[] = new NameValue[ headerpairs.length + 1 ];
System.arraycopy(headerpairs, 0, temp, 0, headerpairs.length);
temp[ headerpairs.length ] = new NameValue(name, value);
headerpairs = temp;
}
catch (NullPointerException npe)
{
System.out.println("NullPointerException while adding name-value:
" + npe);
}
}
/**
* 以字符串的形式归还这个类
*/
public String toString()
{
String s = method + " " + file + " " + version + "\n";
for (int x = 0; x < headerpairs.length; x++ )
s += headerpairs[x] + "\n";
return s;
}
}

NameValue类简单地存储了两个字符串:name 和 value.当一个新的对要被加入时,一个新的数组将被分配.新的数组接受了旧的数组和新的成员.旧的数组然后被一个新建的对象覆盖了.

时间: 2024-08-07 07:05:22

Java Socket编程(五) 简单的WEB服务器_Java编程的相关文章

一个简单的web服务器

写在前面 新的一年了,新的开始,打算重新看一遍asp.net本质论这本书,再重新认识一下,查漏补缺,认认真真的过一遍. 一个简单的web服务器 首先需要引入命名空间: System.Net,关于网络编程的大部分类型及操作都可以在这个命名空间下找到. IPAddress:类用来表示一个ip地址. IPEndPoint:用来表示一个IP地址和一个端口号的组合,称为网络的端点. System.Net.Sockets:命名空间中提供了基于Socket编程的数据类型. Socket类封装了Socket的操

简单实现Java web服务器_java

一个简单的Java web服务器实现,比较简单,基于java.net.Socket和java.net.ServerSocket实现: 一.程序执行步骤 1.创建一个ServerSocket对象:  2.调用ServerSocket对象的accept方法,等待连接,连接成功会返回一个Socket对象,否则一直阻塞等待:  3.从Socket对象中获取InputStream和OutputStream字节流,这两个流分别对应request请求和response响应:  4.处理请求:读取InputSt

深入剖析tomcat之一个简单的web服务器

这个简单的web服务器包含三个类 HttpServer Request Response 在应用程序的入口点,也就是静态main函数中,创建一个HttpServer实例,然后调用其await()方法.顾名思义,await方法会在制定的端口上等待http请求,并对其进行处理,然后发送相应的消息回客户端.在接收到命令之前,它会一直保持等待的状态. HttpServer类 package simpleHttpServer; import java.io.File; import java.io.IOE

《深入剖析Tomcat》一第 1 章 一个简单的Web服务器

第 1 章 一个简单的Web服务器 本章介绍Java Web服务器是如何运行的.Web服务器也称为超文本传输协议(HyperText Transfer Protocol,HTTP)服务器,因为它使用HTTP与其客户端(通常是Web浏览器)进行通信.基于Java的Web服务器会使用两个重要的类:java.net.Socket类和java.net.ServerSocket类,并通过发送HTTP消息进行通信.本章先介绍HTTP协议和这两个类,然后介绍一个简单的Web服务器.

Java实现简易Web服务器_java

众所周知Web服务器与客户端之间的通信是使用HTTP协议的.HTTP是一个客户端和服务器端请求和应答的标准(TCP).因为HTTP协议是基于TCP协议的,所以我将使用JAVA中的Socket完成这个简易的Web服务器.关于HTTP更详细的资料,各位可以查阅相关资料进行了解. 在服务器编写之前,我们还是先来看一下浏览器与服务器之间通信的规则到底如何. 首先,我们是用ServerSocket来模拟一个服务端,通过浏览器访问,查看浏览器请求的内容: import java.io.BufferedWri

创建一个简单的web服务器

Web服务器也称为超文本传输协议(HTTP)服务器,因为它使用HTTP来跟客户端进行通信的.既然说到通信那就离不了Java里的两个重要的类java.net.Socket和java.net.ServerSocket.这里浏览器一方可以认为是一个客户端,接收HTTP请求的一方可以认为是服务端.在这之前我们先说一下HTTP协议. HTTP协议允许web服务器和浏览器通过网络来进行发送和接收数据.它是一种请求和响应协议.客户端发送一个请求,服务端响应这个请求.HTTP请求由三部分组成,分别是:请求行.消

php使用socket post数据到其它web服务器的方法_php技巧

本文实例讲述了php使用socket post数据到其它web服务器的方法.分享给大家供大家参考.具体实现方法如下: function post_request($url, $data, $referer='') { // Convert the data array into URL Parameters like a=b&foo=bar etc. $data = http_build_query($data); // parse the given URL $url = parse_url(

如何用node.js实现一个简单的web服务器

node.js实现web服务器还是比较简单的,我了解node.js是从<node入门>开始的,如果你不了解node.js也可以看看! 我根据那书一步一步的练习完了,也的确大概了解了node.js,不过里面写的路由的地方总感觉不方便,十一放假最后一天,试着写了个简单的web服务器,现在分享记录于此! http模块已提供了基本功能,所以我主要解决两个问题,1是静态资源的处理,2是动态资源的路由. 静态资源在node.js里的意思是不变的,如图片.前端js.css.html页面等. 动态资源我们一般

Python基于twisted实现简单的web服务器_python

本文实例讲述了Python基于twisted实现简单的web服务器,分享给大家供大家参考.具体方法如下: 1. 新建htm文件夹,在这个文件夹中放入显示的网页文件 2. 在htm文件夹的同级目录下,建立web.py,web.py的内容为: from twisted.web.resource import Resource from twisted.web import server from twisted.web import static from twisted.internet impo