最简单的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!");
??? }


? }
}

一个简单的、基本的http服务器

  • 2014年09月20日 01:33
  • 7.13MB
  • 下载

一个简易的java http服务器

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

一个简单的HTTP服务器

功能未完善,单线程,将就着用吧package webservice.service;import java.io.BufferedReader; import java.io.Closeable; i...
  • sinat_18831033
  • sinat_18831033
  • 2016-12-09 16:35:43
  • 218

简单的http服务器java

package jiankongLinux; import java.io.BufferedReader; import java.io.IOException; import java.io.Inp...
  • cs948294549
  • cs948294549
  • 2016-09-05 17:30:05
  • 521

自己动手写http服务器---java版

最简单的http服务器,可下载源码:http://download.csdn.net/detail/ajaxhu/6356885 大概介绍一下原理吧,浏览器打开网页可以简单分为3个阶段: 1.通...
  • AJAXHu
  • AJAXHu
  • 2013-10-05 17:52:41
  • 10198

c语言HTTP服务器,超级简易版。

算是对linux多线程的复习把,尝试这用socket写了一个简单的HTTP服务器,当访问它的时候它会给你发送一个HTML文件,这个HTML文件需要自己写。 代码:#include #include...
  • your_eyes_see_sea
  • your_eyes_see_sea
  • 2017-03-04 16:19:47
  • 296

一个简单的http服务器的实现 含源代码

EasyHttp 最简单的C语言 http服务器说明:这是一个C语言编写的http服务器简单实现,使用python语言作为cgi程序处理用户的表单输入。通过这个项目有利于理解http服务流程,以及多线...
  • hunterzhaominng
  • hunterzhaominng
  • 2016-04-12 19:29:02
  • 1448

python的简易HTTP服务器

1、运行简易服务器很多时候,我们需要能快速运行起一个HTTP服务器,但是httpd或者nginx还需要配置,需要多一点的专业知识。这时候我们可以用python2.7自带的包快速运行一个服务器,提供1....
  • dahlwuyn
  • dahlwuyn
  • 2017-01-14 11:09:20
  • 541

简单HTTP服务器的Java实现

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

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

转载:http://blog.jobbole.com/107279/#article-comment 好久没输出了,知识还是要写下总结才能让思路更加清晰。最近在学习计算机网络相关的知识,来聊...
  • u012662731
  • u012662731
  • 2016-11-03 20:05:27
  • 2372
收藏助手
不良信息举报
您举报文章:最简单的Http服务器之java版
举报原因:
原因补充:

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