# URL Rewriting - WIE?



## Skymax (2. Dez 2004)

So - folgendendes Problem: 

Ich schreibe zurzeit eine Immobilienverwaltung als Hausübung und zuerst kommt ein Login-Screen. Von dort aus leite ich dann mittels


```
String encodedUrl = response.encodeURL("/soft.htm");
                sc.getRequestDispatcher(encodedUrl).forward(request, response);
```

auf eine andere Webseite (im Dreamweaver generiert) weiter. auf soft.htm habe ich wiederrum ein Formular dass dann mit einem Post-Befehl auf ein andres Servlet weiterleitet. Mein Problem nun: Mit SessionCookies funktioniert alles einwandfrei, allerdings ist auch URL Rewriting gefordert. 

Ich hänge daran dass ich zwar problemlos mit URL Rewriting auf ein anderes Servlet verweisen kann, allerdings KEINE ahnung habe wie ich Mittels URL Rewriting den Zwischenschritt (soft.htm) schaffen soll. 

Also Reihenfolge der aufgerufenen Resourcen: 

HTML-Site -> Servlet  (Session generieren, einloggen) -> HTML-Site -> Servlet (HIER habe ich mit URL Rewriting keine Session mehr - und Abflug ) 



wäre sehr dankbar für Lösungsvorschläge? 


mfg Sky


----------



## foobar (2. Dez 2004)

Warum verwendest du keine JSP anstatt der Htmlseite?


----------



## Skymax (2. Dez 2004)

leider ist die Erklärung trivial: ich habe keine ahnung von jsp, da wir das in der Schule noch nicht durchgenommen haben..


----------



## Bleiglanz (2. Dez 2004)

daran gedacht, dass auf bzw. IN der "HTML-Site" alle Links, das Formular-action Attribut usw. die SessionID erhalten haben (d.h. ALLE verweise müssen durch encodeURL laufen)


----------



## foobar (2. Dez 2004)

> ich habe keine ahnung von jsp, da wir das in der Schule noch nicht durchgenommen haben..


Na dann wirds Zeit


----------



## Skymax (2. Dez 2004)

@Bleiglanz: 

ich verstehe leider nicht ganz wie du das meinst - durch das encodeUrl etc. müssten die Links etc. auf der HTML-Page die Session ID eigentlich erhalten haben? - check ich nicht. 

wie kriege ich dann die Session ID von der HTML-Page rüber zum zweiten Servlet?


----------



## Bleiglanz (2. Dez 2004)

> String encodedUrl = response.encodeURL("/soft.htm");
> sc.getRequestDispatcher(encodedUrl).forward(request, response);


wenn du das so machst und soft.htm eine statische Datei ist (hab ich oben übersehen), dann ist das völlig unmöglich (weil alle a hrefs schon vorher feststehen)

Nur weil dasteht soft.htm;jsessionid=25p08quapw34orauöpie wird deshalb nicht automatisch der ganze Inhalt dieser Datei geparsed und umgeschrieben, die wird einfach so wie sie ist an den Client geschickt

MERKE: Wenn du mit encodeURL arbeiten musst, dann darf es in deinem Projekt keine einzige statische HTML Datei mehr geben (es sei denn solche, die keinerlei Links enthalten, in der Praxis also keine)

du musst auch soft.htm von einem Servlet erzeugen lassen und ALLE hrefs usw. umschreiben!!!


----------



## Skymax (2. Dez 2004)

JEP, ist eine statische datei!

Das ist dann aber ein Problem, da ich soft.htm ne seite mit Frames etc. ist und das alles von nem Servlet erzeugen zu lassen ist für mich sogut wie ähm.. unmöglich? (so zwecks wissenstand)


----------

