基于Java实现的最简单的Web服务器

近日学习Java的网络编程,看到一个及其简单的例子,但是却实现了一次Web访问的功能,当然,于Tomcat和Weblogic等Web服务器自然是没法比,可是展现了最基本的Web访问的网络原理的实现,短小精悍,看了才知道,原来还可以这样。

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
public class HTTPThread implements Runnable {
           
    private Socket socket;
    private int count;
    public HTTPThread(){
               
    }
           
    public HTTPThread(Socket socket, int count){
        this.socket = socket;
        this.count = count;
    }
    @Override
    public void run() {
        // TODO Auto-generated method stub
        try {
            OutputStream os = socket.getOutputStream();
            PrintWriter pw = new PrintWriter(os);
            pw.println("<html>");
            pw.println("<head>");
            pw.println("<body>");
            pw.println("This my page! You are welcome!");
            pw.println("</body>");
            pw.println("</head>");
            pw.println("</html>");
                   
            pw.flush();
            pw.close();
            os.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
    public static void main(String[] args){
        int count = 1;
        try {
            ServerSocket ss = new ServerSocket(8080);
            Socket s = null;
            while((s=ss.accept()) != null){
                System.out.println("The visitor:" + count);
                HTTPThread httpThread = new HTTPThread(s, count);
                Thread thread = new Thread(httpThread);
                thread.start();
                count++;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

编译运行后,通过浏览器访问:8080/就可以了,是不是很神奇呢!

推荐阅读

日志分析工具Awstats实战之Apache篇-多站点日志分析

Ubuntu 13.10 下安装支持SSL的Apache

再谈伪装Apache版本防止入侵Web服务器

Apache Python 模块mod_wsgi的编译安装

企业Shell脚本分析及切割Apache日志实战

Linux网站架构系列之Apache----部署篇

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/f7da1f7db4f7fdeb4e759be99156a8d0.html