Web Server (versão Java)

Import java.io.BufferedReader;
 importação java.io.IOException;
 importação do java.io.InputStreamReader;
 importação java.io.PrintWriter;
 importação do java.net.ServerSocket;
 importação do java.net.Socket; 

/ ** 
 * * @description: // servidor HTTP TODO simples, na verdade, aceitar o pedido HTTP e analisar o pedido, * @author: sunfch 
 * * @date: 2019/01/03 16:35 * @ Param: * @return: 
 * / 
público  classe do httpserver {
     público  estáticos  vazios principais (String [] args) {
         try {
             / * ouvindo número da porta, contanto que ele pode receber a 8888 * /  
            o ServerSocket SS = new newO ServerSocket (8888 );
             o tempo ( a verdadeira ) {
                 / * Exemplos do cliente, uma rotina fixa, aceite pelo servidor de destino, o cliente gera o correspondente instância * /  
                o engaste = ss.accept ();
                 / * Obter entrada do cliente o fluxo de informações de base, um pedido é superior a: cabeçalho do pedido, quebras de linha, o corpo do pedido de * /  
                o BufferedReader BD = novo novo o BufferedReader ( novo novo a InputStreamReader (Socket.getInputStream ()));
                 / ** * aceitar pedidos de HTTP, e analisar os dados * / 
                Cadeia RequestHeader; 
                int contentLength = 0 ;
                 o tempo ((RequestHeader = bd.readLine ()) =!nula &&! requestHeader.isEmpty ()) { 
                    System.out.println (RequestHeader); 
                    / ** * GET parâmetro obtido * / 
                    SE (requestHeader.startsWith ( "GET" )) {
                         int a começar = requestHeader.indexOf ( "/" );
                         int End = requestHeader.indexOf ( "HTTP /" ); 
                        Cordas para a condição Condition = requestHeader.substring (a começar, End); 
                        System.out.println ( "The Get parâmetro é:" + para a condição Condition); 
                    } 
                    / ** * obtido POST 1. O conteúdo do parâmetro pedido de aquisição * comprimento * / 
                    SE(requestHeader.startsWith ( "conteúdo de comprimento" )) {
                         int começar = requestHeader.indexOf ( "Content-Lengh:") + "conteúdo de Comprimento:" .length (); 
                        Corda postParamterLength = requestHeader.substring (começam + 1 ) .trim (); 
                        contentLength = Integer.parseInt (postParamterLength); 
                        System.out.println ( "POST参数长度是:" + Integer.parseInt (postParamterLength)); 
                    } 
                } 
                StringBuf sb = novo StringBuf ();
                se (contentLength> 0) {
                     Para ( int i = 0; i <contentLength; i ++ ) { 
                        sb.append (( carvão ) bd.read ()); 
                    } 
                    System.out.printlnl ( "POST参数是:" + sb.ToString ()); 
                } 
                / * 发送回执* /  
                PrintWriter pw = novo PrintWriter (socket.getOutputStream ()); 
                pw.println ( "HTTP / 1.1 200 OK" ); 
                pw.println ( "Content-Type: text / html" ); 
                pw.println (); 
        
                pw.println ("<HTML>" ); 
                pw.println ( "<TITLE> Índice </ TITLE>" ); 
                pw.println ( "<BODY>" ); 
                pw.println ( "<P> Bem-vindo ao servidor web de J. David." ); 
                pw.println ( "<H1> CGI demo1" ); 
                pw.println ( "<form action = \" color.cgi \ "METHOD = \ "POST \">" ); 
                pw.println ( "Enter uma cor: <input type = \" text \ "name = \ "color \">" ); 
                pw.println ( "<P>" );
                pw.println ( "<input type = \" submeter \ ">" ); 
                pw.println ( "</ form>" ); 
                pw.println ( "</ BODY>" ); 
                pw.println ( "</ HTML>" ); 
                
    
                pw.flush (); 
                socket.close (); 
            } 
        } Prendedor (IOException e) { 
            e.printStackTrace (); 
        } 
    } 
}

 

Acho que você gosta

Origin www.cnblogs.com/zhoujiayi/p/12541657.html
Recomendado
Clasificación