# Http request bekommen parsen und response senden



## Guest (18. Nov 2007)

Hallo,

ich soll einen http request mitbekommen, diesen parsen und dann ein response zurücksenden.

habe sowas aber noch nice gemacht. und gehofft von euch kann mir jemand helfen, weiß das man das mit servlets macht und jetty. nur weiß ich nicht wie ich weitermache. Programmiere mit eclipse.
Kann mir jemand mal ein paar zeilen bsp cöce schreiben. indem auf den port 80 gelauscht wird, dort der request empfangen wird, dieser erst mal in ne text datei gespeichert wird, und als response vielleicht ne 1 zurückgesendet wird. Damit ich weiß wie ich das anfange?

Ich verwende auch gerne andere bibliotheken oder so, hatte bloß gelesen das man jetty in java programme einbinden kann. oder gibt es vielleicht seiten, wo das erklärt ist. Brauch das bloß für ne praktikums aufgabe also würde mich freuen wenn jemand mir mal grob erklärt was ich da schritt für schitt machen muss. und mit welchem bibliotheken der geringste prog aufwand entsteht.


----------



## Guest (19. Nov 2007)

Hier ein simples HTTP-Echo (Abfrage wird direkt als Ausgabe verwendet)
Aufruf mit http://localhost:88 im Browser
	
	
	
	





```
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class HttpEcho
{
   public static void main(String[] args) throws Exception
   {
      ServerSocket serverSocket = null;
      try
      {
         serverSocket = new ServerSocket(88);
         for (;;)
         {
            Socket client = serverSocket.accept();
            BufferedInputStream in = new BufferedInputStream(client.getInputStream());
            ByteArrayOutputStream buffer = new ByteArrayOutputStream();
            int nlc = 0, c;
            while (nlc < 4 && (c = in.read()) != -1)
            {
               nlc = ("\n\r".indexOf(c) >= 0) ? nlc + 1 : 0;
               buffer.write(c);
            }
            buffer.close();
            BufferedOutputStream out = new BufferedOutputStream(client.getOutputStream());
            out.write("HTTP/1.1 200 OK\n\n".getBytes());
            out.write(buffer.toByteArray());
            out.flush();
            client.close();
         }
      }
      finally
      {
         if (serverSocket != null)
         {
            serverSocket.close();
         }
      }
   }
}
```


----------

