J2EE(一)——开发简单WEB服务器

一、web开发介绍

网页连接过程(B/S):客户端使用浏览器,发送http请求到web服务器上,服务器进行回应。Browser/Server

http请求内容:

GET/HTTP/1.1 说明是get请求,使用的是http1.1的协议。

Accept:image/gif..... 说明我能够接收的图片格式有如下...

Accept-Language:zh-cn. 说明我能接收的语言是中文.

User-Agent:xxx 说明我能支持的浏览器有xxx.

Host:www.baidu.com 说明我要访问的主机是www.baidu.com

网页连接过程(C/S):客户端(客户端自己写的程序)使用tcp/ip协议发送请求道服务器上,服务器进行回应。Client/Server

Tcp/ip请求:其实http请求就是包好了的Tcp/ip请求。

二、模拟开发一个web服务器

1.先写一个html文件用于显示(放在E:\\WebTest/Hello.html)

2.写一个MyWebServer.java如下:

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

public class MyWebServer {

public static void main(String[] args) throws Exception{

// TODO 自动生成的方法存根

ServerSocket ss=new ServerSocket(9999); //设置端口号9999

System.out.println("在9999端口上等待连接..."); //等有请求发送过来

Socket s=ss.accept();

System.out.println("在9999端口上连接成功...");

OutputStream os=s.getOutputStream();

BufferedReader br=new BufferedReader(new FileReader("E:\\WebTest/Hello.html"));

String bfString="";

while ((bfString=br.readLine())!=null) {

os.write(bfString.getBytes());

}

br.close();

os.close();

s.close();

}

}

3.编译运行此java文件后,到浏览器进入http://localhost:9999/,就能显示最先写的网页。

4.值得一提的是,如果MyWebServer.java写的是80端口,则直接http://localhost即可访问。

5.而且,如果想多人同时访问此此页面,需要将代码改为

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

public class MyWebServer {

public static void main(String[] args) throws Exception{

// TODO 自动生成的方法存根

ServerSocket ss=new ServerSocket(9999); //设置端口号9999

While(true){

System.out.println("在9999端口上等待连接..."); //等有请求发送过来

Socket s=ss.accept();

System.out.println("在9999端口上连接成功...");

OutputStream os=s.getOutputStream();

BufferedReader br=new BufferedReader(new FileReader("E:\\WebTest/Hello.html"));

String bfString="";

while ((bfString=br.readLine())!=null) {

os.write(bfString.getBytes());

}

}

br.close();

os.close();

s.close();

}

}

时间: 2024-11-03 21:26:02

J2EE(一)——开发简单WEB服务器的相关文章

Socket网络编程--简单Web服务器(1)

这一次的Socket系列准备讲Web服务器.就是编写一个简单的Web服务器,具体怎么做呢?我也不是很清楚流程,所以我找来了一个开源的小的Web服务器--tinyhttpd.这个服务器才500多行的代码,使用C语言.这一小节就不讲别的内容了.就对这个程序进行一些注释和讲解了. 主函数: 1 int main(void) 2 { 3 int server_sock = -1; 4 u_short port = 0; 5 int client_sock = -1; 6 struct sockaddr_

Socket实现简单Web服务器

上一篇博客中介绍了怎样使用socket访问web服务器.关键有两个: 1)熟悉Socket编程: 2)熟悉HTTP协议. 上一篇主要是通过socket来模拟浏览器向(任何)Web服务器发送(HTTP)请求,重点在浏览器端.本篇博客则反过来讲一下怎样使用socket来实现Web服务器,怎样去接收.分析.处理最后回复来自浏览器的HTTP请求. HTTP协议是浏览器和Web服务器都需要遵守的一种通信规范,如果我们编写一个程序,正确遵守了HTTP协议,那么理论上讲,这个程序可以具备浏览器.甚至Web服务

java实现简单web服务器(分析+源代码)

在日常的开发中,我们用过很多开源的web服务器,例如tomcat.apache等等.现在我们自己实现一个简单的web服务器,基本的功能就是用户点击要访问的资源,服务器将资源发送到客户端的浏览器.为了简化操作,这里不考虑资源不存在等异常情况.web服务基于的是HTTP协议,用户在浏览器的地址栏输入要访问的地址,服务器如何得到该地址是个关键.先看下一般的HTTP请求和响应报文的一般格式: HTTP 请求报文 HTTP 响应报文 web服务器获取一个用户的连接时,会初始化一个线程和用户通信,代码如下:

【Web后端笔记】基于Socket实现的简单Web服务器搭建

我们在地址栏中输入的内容称为通用资源标记符(Universal Resource Identifier,URI)它有很多种样式,在Web中我们通常称为统一资源定位符(Uniform Resource Locator,URL)的形式,它的格式如下: 协议://主机[.端口号][绝对路径[?参数]] 在http://www.cnblogs.com/DebugLZQ/中,http表示协议名称;www.cnblogs.com表示主机的地址:可选的端口号没有出现,那么,将使用http协议默认的端口号80:

SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载

SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载 这篇博文我们通过spring与Mybatis集成,开发一个简单用户增删改查的Web项目. 基本准备工作 1.安装JDK1.6以上版本,安装与配置 2.下载mybatis-3.2.0版:https://repo1.maven.org/maven2/org/mybatis/mybatis/ 3.下载mybatis-spring-1.2.1版:https://repo1.maven.org/maven2/org/m

Python 实现简单 Web 服务器

Python 实现简单 Web 服务器 最近有个需求,就是要创建一个简到要多简单就有多简单的web服务器,目的就是需要一个后台进程用来接收请求然后处理并返回结果,因此就想到了使用python来实现. 首先创建一个myapp.py文件,其中定义了一个方法,所有的请求都会经过此方法,可以在此方法里处理传递的url和参数,并返回结果. def myapp(environ, start_response): status = '200 OK' headers = [('Content-type', 't

tomcat解析之简单web服务器(图)

链接地址:http://gogole.iteye.com/blog/587163 之前有javaeyer推荐了一本书<how tomcat works>,今天晚上看了看,确实不错,第一眼就着迷了. 于是乎就学着书上的例子敲了敲,学会了一个简单web服务器的大概实现,当然,这个简直就无法称之为web服务器,但是也算是走进web服务器的第一步吧. 这篇文章仅限于学习记录,文笔凌乱之处,还望各位见谅. OK,下面进入正题: 开始之前,首先我们要清楚以下几个内容. 首先,一个最简单服务器包括三个部分:

自己实现简单Web服务器,支持GET POST请求

最近项目上遇到一个需求,最后想到的解决方案是自己实现一个web服务器去处理请求,然后再将信息发送到另外一个程序.然后返回处理之后的结果呈现出来. 现在我就来分享一下如何实现的. 通过.NET 为我们提供的HttpListener类实现对Http协议的处理,实现简单的web服务器. 注意:此类在 .NET Framework 2.0 版中是新增的.所以支持.NET Framework 2.0以上版本.该类仅在运行 Windows XP SP2 或 Windows Server 2003 操作系统的

Socket网络编程--简单Web服务器(6)

本来是想实现ssl连接的,但是弄了好久都不成功,就索性不做了,等以后有能力再做了.所以这一小节就是本次的最后一节了.就简单的说几个注意点. 1.加个配置文件 使用单例模式,使用一个类,该类保存一些信息,例如一个配置类的一个属性为PAGE404的字符串,该字符串保存一个文件地址,然后我们的Page_404函数就可以用access判断PAGE404这个字符串对应的文件是否存在,如果存在那么如果是404页面那么就cat这个文件,而不是默认的404函数里面的页面.还有个端口什么的都是通过一个类似宏定义一