# statische Html Seite als response erhalten (Servlet)



## BlubBlub (18. Mai 2011)

Hi,

wenn ich durch Drücken des submit Buttons über ein form Element etwas an ein Servlet verschickt, so kann ich mit dem HttpResponse Objekt an den Client etwas zurückschicken.
Ist es möglich anstelle einer dynamisch erzeugten Seite eine statische Seite über das Servlet zu verschicken?


```
protected void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException 
 {
           response.setContentType("text/html");
           PrintWriter out = response.getWriter();
           out.println( STATISCHEhtmlSEITE.html );
           out.close();
  {
```


----------



## mvitz (18. Mai 2011)

Dann würde ich den Umweg über ein Servlet weglassen und die HTML Seite direkt anzeigen.


----------



## BlubBlub (18. Mai 2011)

Ich verwende auf der Clientseite einen jQuery Dialog und in diesem Dialog hab ich ein iframe eingebettet.
Zunächst steht im iframe Tag im src Attribut der Pfad zur login.html.
Also wird im iframe die login.html Seite angezeigt.
Nun wollte ich, dass der User sein Namen und sein Passwort in das Login Iframe Formular einträgt.
Die Login Daten werden an das Servlet gesendet.
Sind die Login Daten Korrekt, so soll das iframe nun seite1.html anzeigen und nicht mehr login.html.
Also wollte ich das HTTPResponse Objekt dazu nutzen mittels out.println  seite.html in das iframe zu laden und den login.html Inhalt damit zu löschen. Nur finde ich es etwas hässlich, wenn ich den Code von seite1.html Zeile für Zeile erstellen muss nach dem Schema 


```
out.prinln("<HTML><HEAD><BODY>");
out.prinln("hello world");
out.prinln("</BODY></HEAD></HTML>");
```

darum wärs mir lieber das irgendwie so hinzubekommen:


```
out.prinln(seite1.html);
```

Zumal ich abhängig von der Benutzereingabe ne andere Seite laden will, also beispielsweise, anstelle von seite1.html möchte ich seite2.html laden wenn das Passwort falsch war oder seite3.html wenn der User sich schon 5 mal an dem heutigen Tag eingeloggt hat. Je nach Situation soll also zwischen einer Seite gewählt werden die verschickt wird.


----------



## tagedieb (19. Mai 2011)

Du kannst den Request and eine andere "Resource" (Servlet, JSP, HTML) weiterleiten. Core J2EE Patterns - Dispatcher View

Wenn du kein Web Framework verwendest kannst du das ganz simpel wie folgt loesen:


```
protected void dispatch(HttpServletRequest request,
    HttpServletResponse response, String page) 
    throws javax.servlet.ServletException, 
    java.io.IOException {
        RequestDispatcher dispatcher = 
          getServletContext(). 
            getRequestDispatcher(page);
        dispatcher.forward(request, response);
  }
```


----------

