天天看点

java httpserver

//start

import java.io.ioexception;

import java.net.inetsocketaddress;

import java.util.concurrent.executors;

import com.sun.net.httpserver.httphandler;

import com.sun.net.httpserver.httpserver;

public class httpdemo {

    private httpserver ser ;

    private int port=8080;

    public httpdemo() {

        // todo auto-generated constructor stub

        try {

            ser = httpserver.create(new inetsocketaddress(port), 0);

            ser.createcontext("/",new datahandler());

            ser.setexecutor(executors.newcachedthreadpool());

        } catch (ioexception e) {

            // todo auto-generated catch block

            e.printstacktrace();

        }

    }

    public void work(){

        ser.start();

        system.out.println("my proxy server started!");

        system.out.println("listing port :"+port);

    public static void main(string[] args) {

        new httpdemo().work();

}

//end

import java.io.outputstream;

import java.io.printwriter;

import java.net.uri;

import java.net.url;

import java.util.iterator;

import java.util.list;

import java.util.set;

import com.sun.corba.se.impl.encoding.codesetconversion.btcconverter;

import com.sun.net.httpserver.headers;

import com.sun.net.httpserver.httpexchange;

public class datahandler implements httphandler{

    public void handle(httpexchange exchange) throws ioexception {

        // todo auto-generated method stub

        string method = exchange.getrequestmethod();

        if (method.equalsignorecase("get")){

            uri uri=exchange.getrequesturi();

            string pro = exchange.getprotocol();

            system.out.println("connect:");

            headers respons = exchange.getresponseheaders();

            respons.set("content-type", "text/html");

            headers request = exchange.getrequestheaders();

            string host=request.getfirst("host");

            system.out.println(pro+host+uri);

            set<string> keyset = request.keyset();

            iterator<string> ite = keyset.iterator();

            string info="";

            while(ite.hasnext()){

                string key = ite.next();

                string val = request.getfirst(key);

                string str = key+" == "+val+"\n";

                system.out.printf(str);

                info+=str;

            }

            string data="<html><head></head><body><h1>hello world</h1><div><pre>"+info+"</pre></div></body></html>";

            exchange.sendresponseheaders(200, data.length());

            outputstream out = exchange.getresponsebody();

            out.write(data.getbytes());

            out.close();