知识大全 Java实现简单web服务器
Posted 知
篇首语:学向勤中得,萤窗万卷书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java实现简单web服务器相关的知识,希望对你有一定的参考价值。
Java实现简单web服务器 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
该程序简单实现web服务器 目前仅支持和gif/jpeg格式 下面是代码
import java io * ;
import * ;
import java util * ;
public class SimpleWebServer
public static void main(String argv[]) throws Exception
//Get the port as an argument
// Also you could hard code the port to point to or any other port
int port = (new Integer(argv[ ])) intValue();
// Establish the listen socket
ServerSocket socket = new ServerSocket(port);
while(true)
// Listen for a TCP connection request
Socket connection = socket accept();
processRequest(connection);
private static void processRequest(Socket connection) throws Exception
final String CRLF = \\r\\n ;
Socket socket = connection;
// Get a reference to the socket s input and output streams
InputStream is = socket getInputStream();
DataOutputStream os = new DataOutputStream(socket getOutputStream());
// Set up input stream filters
BufferedReader br = new BufferedReader(new InputStreamReader(is));
// Get the request line of the HTTP request message
String requestLine = br readLine();
// Extract the filename from the request line
StringTokenizer tokens = new StringTokenizer(requestLine);
tokens nextToken(); // skip over the method which should be GET
String fileName = tokens nextToken();
// Prepend a so that file request is within the current directory
fileName = /root/ + fileName ;
// Open the requested file
FileInputStream fis = null ;
boolean fileExists = true ;
try
fis = new FileInputStream(fileName);
catch (FileNotFoundException e)
fileExists = false ;
// Construct the response message
String statusLine = null;
String contentTypeLine = null;
String entityBody = null;
if (fileExists)
statusLine = HTTP/ OK + CRLF;
contentTypeLine = Content Type: +
contentType(fileName) + CRLF;
else
statusLine = HTTP/ Not Found + CRLF;
contentTypeLine = Content Type: text/ + CRLF;
entityBody = <HTML> +
<HEAD><TITLE>Not Found</TITLE></HEAD> +
<BODY>Not Found</BODY></HTML> ;
// Send the status line
os writeBytes(statusLine);
// Send the content type line
os writeBytes(contentTypeLine);
// Send a blank line to indicate the end of the header lines
os writeBytes(CRLF);
// Send the entity body
if (fileExists)
sendBytes(fis os);
fis close();
else
fileExists = false;
os writeBytes(entityBody) ;
// Close streams and socket
os close();
br close();
socket close();
private static void sendBytes(FileInputStream fis
OutputStream os) throws Exception
// Construct a K buffer to hold bytes on their way to the socket
byte[] buffer = new byte[ ];
int bytes = ;
// Copy requested file into the socket s output stream
while ((bytes = fis read(buffer)) != )
os write(buffer bytes);
private static String contentType(String fileName)
if(fileName endsWith( ) || fileName endsWith(l ))
return text/ ;
else if (fileName endsWith( gif ))
return image/gif ;
else if (fileName endsWith( jpg ) || fileName endsWith( jpeg ))
return image/jpeg ;
return application/octet stream ;
cha138/Article/program/Java/hx/201311/25715
相关参考
如何用Java实现Web服务器 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一HTTP协议的作
JAVA实现支持视频点播WEB服务器 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一项目简介
JavaWeb服务学习报告—Web简介 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在网络飞速
Javawebstart入门 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 下面是用最简单的He
Java学习:线程池的简单构建 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 现在服务器端的应用
知识大全 基于php使用memcache存储session的详解
web服务器的phpsession都给memcached这样你不管分发器把ip连接分给哪个web服务器都不会有问题了配置方法很简单就在php的配置文件内增加一条语句就可以了不过前提你需要装好mem
ASP.NET创建Web服务之管理Web服务状态 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
PHP是一种功能强大的Web开发语言开发效率高语法简单为动态网站量身定做加强面向对象(向C++靠拢与JAVA搭了点边)可惜单线程(这是至命弱点据说PHP是用CC++编写的)也能用CC++JAVA开
ASP.NET开发宝典:配置Web服务器(IIS)虚拟站点 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
现在的软件开发语言太多了尤其现在的所有软件都基本是B/S结构的所以对WEB开发语言的使用也就越来越多搞了几年的JAVA开发 这段时间也抽了点时间玩玩dotnetperlphp等其它WEB