2009-03-12 14 views
3

ich möchte wissen, wie man eine URL in einem Servlet generiert. Ich habe ein Login-Servlet und jedes Mal, wenn ich einen Benutzer hinzufüge, möchte ich gen. eine URL für jedes Benutzerprofil. Kann mir bitte jemand helfen?Wie erstelle ich eine URL in einem Servlet?

Antwort

2

Ich denke, die Lösung von kgiannakakis ist sehr gut. Ich möchte nur ein paar Details hinzufügen, weil ich den Kommentar von Agusti-N gelesen habe. Ich habe den Verdacht, dass er etwas vermisst.

Nehmen wir an, Sie haben die UsersServlet von kgiannakakis beschrieben, eine so genannte jsp showUserProfile.jsp und eine userBean, die alle Eigenschaften des Benutzerprofil benötigt in der jsp gezeigt werden.

Wenn sich ein neuer Benutzer bei Ihrer Anwendung registriert, müssen Sie nichts mehr tun, als Sie bereits jetzt tun. Registrieren Sie einfach einen neuen Benutzer in der db und vergessen Sie das Login-Servlet.

Angenommen, ich habe mich mit Ihrem Benutzernamen in der App registriert: alexmeia.

Wenn jemand digit die URL yourApp/Users/alexmeia die UsersServlet genannt wird. Dieses Servlet erhält den Benutzernamen alexmeia von der Anfrage-URL, checkt in der DB ein, wenn dieser Benutzername existiert und falls vorhanden laden Sie alle Eigenschaften dieses Benutzers in die userBean.

Danach weiterleiten an showUserProfile.jsp, die das Benutzerprofil zeigt es aus dem userBean zeigt.

Selbstverständlich, wenn der Benutzer alexmeia nicht in der Db ist, können Sie auf eine generische userNotFound.jsp umleiten oder zur Homepage gehen und mit einer Nachricht und so weiter ...

Dies ist für alle Werke registrierte Benutzer auf die gleiche Weise. Sie müssen nicht wirklich eine echte neue URL für jeden neuen Benutzer erstellen.

+0

ausgezeichnet. Dank dafür –

1

Es klingt, als ob Sie in REST Technologien suchen könnten. Es gibt eine tutorial hier, die Sie vielleicht ansehen möchten.

7

Der einfachste Weg ist es, eine Servletzuordnung wie folgt zu erklären:

<servlet-mapping> 
    <servlet-name>UsersSelvlet</servlet-name> 
    <url-pattern>/Users/*</url-pattern> 
    </servlet-mapping> 

Nun, wenn Sie eine Anfrage für MeineAnw/Benutzer erhalten/UserId Sie den Anfragepfad zu lesen, erhalten die Benutzer-ID und überprüfen, ob die Benutzer existiert. Wenn nicht, gibst du 'Nicht gefunden' zurück. Andernfalls geben Sie die Benutzerseite zurück.

Dies ist eine schnelle und schmutzige Implementierung eines RESTful-Dienstes.

+0

wenn die Seite des Benutzers nicht existiert, wie ich die Benutzerseite zurückgebe? –

+0

Sie erstellen die Benutzerseite "on the fly", wann immer sie angefordert wird. – kgiannakakis

0

Benötigen Sie ein URL-Rewriting? Etwas wie this, vielleicht, aber anstelle von RMI generieren Sie Ihre eigene Benutzer-ID

Verwandte Themen