最简单的Http服务器之java版

原创 2004年08月16日 13:28:00

只支持单线程,只能接收一个请求

我想加以改进,让它可以接收多个请求

注释我就不加了

可以参考用winsock版,好像java的更简单

?

import java.io.*;
import java.net.*;
import java.util.*;

public class WebServer{
? public static void main(String []args)throws Exception{
??? String requestMessageLine;
??? String fileName;
??? ServerSocket listenSocket=new ServerSocket(80);
??? Socket connectSocket=listenSocket.accept();
??? BufferedReader inFormClient=new BufferedReader(new
??????? InputStreamReader(connectSocket.getInputStream()));
??? DataOutputStream outToClient=new
??????? DataOutputStream(connectSocket.getOutputStream());
??? requestMessageLine=inFormClient.readLine();
??? StringTokenizer tokenizedLine=new StringTokenizer(requestMessageLine);
??? if(tokenizedLine.nextToken().equals("GET")){
????? fileName=tokenizedLine.nextToken();
????? if(fileName.startsWith("/")==true){
??????? fileName=fileName.substring(1);
????? }
????? String filePath=new String("D://Java//httpserver//classes//");
????? File file=new File(filePath+ fileName);
????? int numOfBytes=(int)file.length();
????? FileInputStream inFile=new FileInputStream(filePath+fileName);
????? byte []fileInBytes=new byte[numOfBytes];
????? inFile.read(fileInBytes);
????? outToClient.writeBytes("HTTP/1.0 200 Document Follows/r/n");
????? if(fileName.endsWith(".jpg")){
???????? outToClient.writeBytes("Conten-Type: image/jpeg/r/n");
????? }
????? else if(fileName.endsWith(".gif")){
???????? outToClient.writeBytes("Conten-Type: image/gif/r/n");
????? }
????? outToClient.writeBytes("Content-Length: " + numOfBytes + "/r/n");
????? outToClient.writeBytes("/r/n");
????? outToClient.write(fileInBytes,0,numOfBytes);
????? connectSocket.close();


??? }
??? else{
????? System.out.println("No support for other request except GET!");
??? }


? }
}

JAVA使用Socket实现的简易HTTP服务器

非阻塞IO的方式解析浏览器请求,封装为请求报文类 import java.io.IOException; import java.io.InputStream; import java.util.Ar...
  • ColdCoding
  • ColdCoding
  • 2016年11月16日 22:25
  • 1206

简单的http服务器java

package jiankongLinux; import java.io.BufferedReader; import java.io.IOException; import java.io.Inp...
  • cs948294549
  • cs948294549
  • 2016年09月05日 17:30
  • 280

一个简易的java http服务器

TTP是个大协议,完整功能的HTTP服务器必须响应资源请求,将URL转换为本地系统的资源名。响应各种形式的HTTP请求(GET、POST等)。处理不存在的文件请求,返回各种形式的状态码,解析MIME类...
  • WALLEZhe
  • WALLEZhe
  • 2017年03月16日 16:32
  • 829

使用Java socket简单模拟HTTP服务器

使用Java socket模拟HTTP服务器
  • hohoo1990
  • hohoo1990
  • 2016年02月19日 15:18
  • 1898

编写一个简易的 HTTP 服务器程序

转载:http://blog.jobbole.com/107279/#article-comment 好久没输出了,知识还是要写下总结才能让思路更加清晰。最近在学习计算机网络相关的知识,来聊...
  • u012662731
  • u012662731
  • 2016年11月03日 20:05
  • 1897

简单HTTP服务器的Java实现

在web的最初阶段是不支持web服务器与用户的交互的.也就是说web服务器不能动态的生成用户要访问的页面,web服务器提供给用户的页面都是提前生成好的.所以也说这种页面是静态页面. 比如说用户请求访...
  • csujiangyu
  • csujiangyu
  • 2015年06月18日 16:41
  • 3874

JAVA 实现 简单的 HTTP服务器

http://www.cnblogs.com/walle2014/p/3815490.html 关于JAVA的HTTP服务器的简单实现,还望大家给出宝贵建议,谢谢。1、首先来说下HTTP所有的状...
  • baidu_18607183
  • baidu_18607183
  • 2016年12月14日 10:05
  • 353

JAVA实现简易HTTP服务器

说实话,之前完全没有想过,我还能写出服务器。感觉服务器这么高端的东西,能会用就不错了,还能写。 不吐槽了,开始了。 这次的作业是搭建一个服务器,要能接收请求,并给浏览器返回正确响应。 ...
  • AARON_YANG666
  • AARON_YANG666
  • 2016年10月12日 12:36
  • 6502

Java实现简易Tomcat服务器(清晰易懂)

Tomcat服务器是一个轻量级的Java代码实现的WEB服务器。这篇文章将会讲述如何用Java实现一个简易版的Tomcat服务器。 简单的讲,简易原理是这样的: 1. Tomcat开始运行之后,会...
  • L_BestCoder
  • L_BestCoder
  • 2017年04月26日 17:06
  • 1872

搭建简单的http服务器

开发语言C++,平台为Linux。 主要流程为:服务器获得请求–>响应并处理请求–>返回结果。这里着重讲怎么处理请求。 主程序在获得一个请求后会开辟一个线程来处理请求 流程图如下。 han...
  • fengasdfgh
  • fengasdfgh
  • 2017年08月03日 06:12
  • 390
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:最简单的Http服务器之java版
举报原因:
原因补充:

(最多只允许输入30个字)