Ich habe eine Restlet-Anwendung entwickelt. Ich möchte eine JSP-Datei auf eine URL-Anfrage durch Restlet zurückgeben. Wie kann ich dies erreichen, ohne eine Weiterleitung zu verwenden?
z.B.. Nehmen wir an, ich habe die Datei "contact.jsp" auf mydomain.com und ich möchte, dass die Leute auf contact.jsp zugreifen können unter http://mydomain.com/contact
In Restlet hätte ich also:
router.attach("/contact", MyResource.class);
Aber wie kann ich die Seite "contact.jsp" zurückgeben? Ich weiß, dass eine Weiterleitung funktionieren würde, aber ich möchte nicht, dass die Benutzer die ".jsp" in " http://mydomain.com/contact.jsp "... oder gibt es eine andere Strategie, die sogar ohne Restlet funktionieren würde? Vielleicht eine Änderung meiner web.xml-Datei?
Bearbeiten (2009-08-14):
Meine unten gepostete Antwort funktioniert nicht mit App-Engine und Restlet. Sie funktioniert jedoch, wenn ich Restlet nicht einbeziehe oder Restlet ein Url-Muster von "/*" erlaubt.
Ideal wäre es, eine Unterklasse des Routers zu haben, die dies ermöglicht:
router.attach("/contact", "/contact.jsp");
Danke!
Bearbeiten (2009-08-17):
Ich bin überrascht, dass ich noch keine Antworten erhalten habe, seit ich ein Kopfgeld ausgesetzt habe. Könnte sich jemand dazu äußern und mich wissen lassen, ob meine Frage/das Problem nicht klar ist?
Bearbeiten (2009-08-17):
Interessante Beobachtung. Wenn ich die von "Rich Seller" weiter unten beschriebene Methode verwende, funktioniert sie, wenn sie in der Google App-Engine bereitgestellt wird und nicht lokal. Außerdem, wenn ich aufrufe http://mydomain.com/contact.jsp auf Google App-Engine umgeht Restlet und geht direkt zum JSP. Aber lokal übernimmt Restlet die Aufgabe. Das ist, http://localhost:8080/contact.jsp geht nicht an die JSP, sondern an Restlet. Reagieren verteilte App-Engine-Anwendungen anders auf URLs als ihr lokales Gegenstück?