Java, Go Web server

Source: Internet
Author: User
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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.