J2EE——开发简单WEB服务器

Posted 菜鸡蔡文姬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();

}

 

}

以上是关于J2EE——开发简单WEB服务器的主要内容,如果未能解决你的问题,请参考以下文章

J2EE web项目中解决所有路径问题

j2ee项目web开发用户上传头像jsp页面显示问题

在 Web 服务 WCF 中调用 Web 服务

给Java新手的一些建议----Java知识点归纳(J2EE and Web 部分)

Tomcat和Weblogic的区别

java web系列 --- EJB