# /Navigate?do=bla in URL - Wie Servletname auslesen?



## ServletProblem_ (21. Okt 2010)

hi,
habe ein template, das über ein Servlet namens "Navigate" die index.jsp immer aufruft und dort im Inhaltsbereich entscheidet, je nach Attribut, welche content.jsp included wird (also impressum.jsp, contact.jsp etc)

wenn ich jetzt gerade in /Navigate?do=impressum bin und mich einlogge, und der login ist fehlerhaft, kommt die fehlermeldung neben dem input, aber es wird eben auch die index.jsp mit der startseite aufgerufen. die URL ändert sich beim klick auf Login auf /Login

Ich möchte beim Login überprüfen auf welcher Seite er gerade ist und GENAU DIESE bei falschem Login auch wieder anzeigen.
Dazu bräuchte ich sowas wie in PHP $_SERVER[REQUEST_URI], dass mir den genauen aktuellen Pfad angibt.

Jetzt die Frage:
Wie bekomme ich den Servletnamen "Navigate" aus der URL extrahiert? Ich bekomm bei ServletPath nur die Information über index.jsp
Ich bekomme die ganze URL iwie zusammen, aber der Servlettname fehlt mir?

Entweder hab ich nen riessen Fehler im Grundaufbau gemacht, oder es ist einfach eine simple funktion. habe alle request.getXXX Funktionen durchprobiert, nichts liefert mir den wahren ServletNamen wie er in der URL steht. 

DANKÖÖÖ


----------



## Stroker89 (22. Okt 2010)

Das bekommst du mit 


```
request.getPathInfo();
```

Gruß


----------



## ServletProblem_ (22. Okt 2010)

Wie schon erwähnt, habe ich alle getXXX Funktionen durchprobiert...ohne Erfolg

also ich rufe mein Servlet über folgenden Link auf:
[JAVA=42]./NavigateTo?do=register[/code]

Das Servlet verarbeitet das Ganze dann so:

[JAVA=42]String targetJsp = request.getParameter("do")+".jsp";

        request.setAttribute("targetJsp", targetJsp);
        request.getRequestDispatcher(response.encodeRedirectURL("/index.jsp")).forward(request, response);[/code]

Ich gelange also wieder auf die index.jsp wo ich in der content div box den inhalt so switche:

[JAVA=42]<% Object newTarget = request.getAttribute("targetJsp");%>
                    <% String targetJsp = (newTarget != null) ? newTarget.toString() : "";%>
                    <% String contentJsp = (targetJsp == "") ? "./jsp/content_start.jsp" : "./jsp/" + targetJsp;%>

                    <jsp:include page="<%= contentJsp%>" />[/code]

Jetzt hab ich in der URL eben dieses NavigateTo Servlet stehen, habe aber keine Möglichkeit an den Namen zu kommen.
Ich versteh es gerade nicht...
ich bekomm als Servletinfo nur index.jsp als ergebnis und nicht NavigateTo!


----------



## Stroker89 (22. Okt 2010)

Ich betreibe einen frontcontroller auf ähnliche Weise:

Aufruf www.meine domain.de/controller/login

dieser Aufruf endet bei mir automatisch am controller servlet und wenn ich dort request.getPathInfo() mach bekomm ich folgendes Ergebnis von der Methode

/login

anhand dieses ergebnis weißt mein controller den passenden handler zu 

Schau dir mal dieses Beispiel ein vlt hilfts dir weiter:

JSP-Tutorial - Einführung ins erste Beispiel

Gruß


----------

