Guten tag.
Ich sehe nach wie vor den Wald vor lauter Bäumen nicht.
Es geht diesmal um folgendes:
Ich habe einen Servlet. Wenn bei dem irgendwelche unsinnigen parameter ankommen, soll er eine hilfe-seite (JSP) aufrufen, und an den client weiterleiten. Die JSP braucht aber zusätzlich die URL des aufrufenden Servlets, weil dort eine form enthalten ist, mit der man den umgang mit dem eigentlichen Servlet "üben" kann.
Momentan mache ich das so:
also über die URL klasse die absolute URL angeben, das was JSP zurücklicefert lesen, und gleich wieder ins response reinschreiben.
Funktioniert zwar, erscheint mir jedoch umständlich und unschön.
Habe mir zwar die methoden von ServletContext und diesen ServletDispatcher angeschaut (mit den methoden forward() und include() ) allerdings weiß ich nicht, wie ich für die forward()-Methode ein neues HttpServletRequest erzeuge, die Klasse stellt ja keinerlei konstruktoren zur verfügung. ???:L diese servlet-requests kommen nur irgendwie "von draußen" vom Servlet-Container, aber wie erstelle ich denn selber einen request, damit ich andere Servlets mit sinnvollen parametern versorgen kann?
Bin für alle vorschläge und anregungen dankbar.
edit: ich könnte auch sendRedirect() zurücksenden, aber dann wären da wieder mehrere schritte dazwischen: zurück zum browser, browser lädt wieder was anderes usw... auch nicht das was ich grad will :roll:
Ich sehe nach wie vor den Wald vor lauter Bäumen nicht.
Es geht diesmal um folgendes:
Ich habe einen Servlet. Wenn bei dem irgendwelche unsinnigen parameter ankommen, soll er eine hilfe-seite (JSP) aufrufen, und an den client weiterleiten. Die JSP braucht aber zusätzlich die URL des aufrufenden Servlets, weil dort eine form enthalten ist, mit der man den umgang mit dem eigentlichen Servlet "üben" kann.
Momentan mache ich das so:
Code:
//im Servlet
public void doGet(HttpServletRequest request, HttpServletResponse response){
[...]
URL helpURL=new URL("http://localhost:8080/test/help.jsp?servletURL="+request.getRequestURL());
response.setContentType("text/html");
byte[] buffer=new byte[0xFFFF];
int len;
InputStream in=helpURL.openStream();
OutputStream out=response.getOutputStream();
while((len=in.read(buffer))!=-1)out.write(buffer, 0, len);
in.close();
out.close();
}
also über die URL klasse die absolute URL angeben, das was JSP zurücklicefert lesen, und gleich wieder ins response reinschreiben.
Funktioniert zwar, erscheint mir jedoch umständlich und unschön.
Habe mir zwar die methoden von ServletContext und diesen ServletDispatcher angeschaut (mit den methoden forward() und include() ) allerdings weiß ich nicht, wie ich für die forward()-Methode ein neues HttpServletRequest erzeuge, die Klasse stellt ja keinerlei konstruktoren zur verfügung. ???:L diese servlet-requests kommen nur irgendwie "von draußen" vom Servlet-Container, aber wie erstelle ich denn selber einen request, damit ich andere Servlets mit sinnvollen parametern versorgen kann?
Bin für alle vorschläge und anregungen dankbar.
edit: ich könnte auch sendRedirect() zurücksenden, aber dann wären da wieder mehrere schritte dazwischen: zurück zum browser, browser lädt wieder was anderes usw... auch nicht das was ich grad will :roll: