This is a creation in Article, where the information may have evolved or changed.
1. Using Java, go comes with Web server
Java language version Reference http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/jre/api/net/httpserver/spec/com/sun/net/ httpserver/package-summary.html A minimal Http server example
Package net;
Import java.io.IOException;
Import Java.io.OutputStream;
Import java.net.InetSocketAddress;
Import Com.sun.net.httpserver.HttpExchange;
Import Com.sun.net.httpserver.HttpHandler;
Import Com.sun.net.httpserver.HttpServer;
/**
* JDK6 new features--http server
*
* @author yangwm Jan, 5:16:41 PM
*/
public class Minihttpd {
public static void Main (string[] args) {
try {
Httpserver HS = httpserver.create (new inetsocketaddress (8080), 0);//Set the Httpserver port to 8088
Hs.createcontext ("/yangwm", New Minihttphandler ());//Request processed to/YANGWM in Minihttphandler class
Hs.setexecutor (NULL); Creates a default executor
Hs.start ();
} catch (Exception e) {
E.printstacktrace ();
}
}
}
Class Minihttphandler implements HttpHandler {
public void handle (Httpexchange t) throws IOException {
String response = "Welcome Yangwm ' s home/n";
T.sendresponseheaders (Response.length ());
OutputStream OS = T.getresponsebody ();
Os.write (Response.getbytes ());
Os.close ();
}
}
Go language version reference http://golang.org/pkg/http/func Listenandserve
Package Main
Import (
"http"
"IO"
"Log"
)
Func Minihttphandler (c *http. Conn, req *http. Request) {
Io. WriteString (c, "Welcome<font color= ' #ff0000 ' > yangwm</font> ' s home/n");
}
Func Main () {
http. Handle ("/yangwm", http. Handlerfunc (HelloServer));
ERR: = http. Listenandserve (": 8080", nil);
If err! = Nil {
Log. Exit ("Listenandserve:", err.) String ())
}
}
2. Test Java, go comes with Web server
Java Web Server test:
C:/Documents and Settings/yangwm>curl Http://127.0.0.1:8080/yangwm
Welcome Yangwm ' s home
Go Web server test:
[Root@localhost ~]# Curl Http://127.0.0.1:8080/yangwm
Welcome Yangwm ' s home
3. Java, go comes with Web server analytics
Httpserver.java Source Code,
Package com.sun.net.httpserver;
Import Com.sun.net.httpserver.spi.HttpServerProvider;
Public abstract class Httpserver {
public static Httpserver Create (inetsocketaddress addr, int backlog)
Throws IOException {
Httpserverprovider Provider = Httpserverprovider.provider ();
return Provider.createhttpserver (addr, backlog);
}
}
Httpserverprovider.java Source Code,
Package COM.SUN.NET.HTTPSERVER.SPI;
Import com.sun.net.httpserver.*;
Public abstract class Httpserverprovider {
public static Httpserverprovider provider () {
Synchronized (lock) {
if (provider! = NULL)
return provider;
Return (Httpserverprovider) Accesscontroller
. doprivileged (New privilegedaction<object> () {
Public Object Run () {
if (Loadproviderfromproperty ())
return provider;
if (Loadproviderasservice ())
return provider;
Provider = new Sun.net.httpserver.DefaultHttpServerProvider ();
return provider;
}
});
}
}
}
Defaulthttpserverprovider. Java source Code,
Package sun.net.httpserver;
Import java.net.*;
Import java.io.*;
Import com.sun.net.httpserver.*;
Import com.sun.net.httpserver.spi.*;
public class Defaulthttpserverprovider extends Httpserverprovider {
Public Httpserver createhttpserver (inetsocketaddress addr,
int backlog) throws IOException {
return new Httpserverimpl (addr, backlog);
}
Public Httpsserver createhttpsserver (inetsocketaddress addr,
int backlog) throws IOException {
return new Httpsserverimpl (addr, backlog);
}
}
Httpserverimpl.java source code, can see http://www.java2s.com/Open-Source/Java-Document/6.0-JDK-Modules-sun/net/sun/net/ Httpserver/httpserverimpl.java.htm
Server.go source code, can see Http://golang.org/src/pkg/http/server.go