Servlet ruft Servlet auf: Wie ServletRequest erstellen?

Status
Nicht offen für weitere Antworten.

0x7F800000

Top Contributor
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:
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:
 
M

maki

Gast
Du erzeugst gar keine ServeltRequests, das ist dem Client (Browser, evtenuell HttpClient) vorbehalten, du brauchst nur den "alten" request zu "forwarden" (response natürlich auch).
 

0x7F800000

Top Contributor
maki hat gesagt.:
du brauchst nur den "alten" request zu "forwarden" (response natürlich auch).
eben nicht.
Der Servlet bekommt den "alten" request, analysiert den "alten" request, stellt fest, dass der Client irgendeinen quatsch geschickt hat, und ruft die Hilfeseite auf. Die hilfeseite kann mit dem "alten" request und den ganzen "alten" parametern aber absolut nichts mehr anfangen, die braucht einen "neuen" request, mit ganz anderen "neuen" parametern. Es macht daher keinen Sinn, den "alten" request zu forwarden.

Das mit HttpClien schaue ich mir gleich genauer an, vielleicht muss ich im Servlet einen solchen Client erzeugen, und damit die Seite ansprechen, vielleicht haut das dann irgendwie hin? ???:L
 
M

maki

Gast
die braucht einen "neuen" request, mit ganz anderen "neuen" parametern.
DAS GEHT NICHT!

Das mit HttpClien schaue ich mir gleich genauer an, vielleicht muss ich im Servlet einen solchen Client erzeugen, und damit die Seite ansprechen, vielleicht haut das dann irgendwie hin?
DAS WÄRE HIRNVERBRANNT!

So, nun da diese Punkte endgültig geklärt ist, können wir ja wieder nach richtigen Lösungen suchen ;)

Was ist denn so schlimm am "alten" Request bzw. dessen Daten?
Soll die Hilfeseite sie doch ignorieren und lieber "neue" Daten (zB. vom Servlet) auslesen.

Nachtrag: Wenn du wissen möchtest warum dein Plan nicht funktionieren würde kann ich dir das schon erklären.
 

0x7F800000

Top Contributor
maki hat gesagt.:
naja, so wie ich das bisher gemacht habe: einfach neues URL objekt aufbauen und per GET ein paar parameter schicken funktioniert ja irgendwie, nur schön find ich's nicht. Direkt einen request konstruieren geht also nicht, okay, akzeptiert.

maki hat gesagt.:
DAS WÄRE HIRNVERBRANNT!
noch hirnverbrannter, als die bisherige lösung mit diesem URL-Objekt?

maki hat gesagt.:
Was ist denn so schlimm am "alten" Request bzw. dessen Daten?
Soll die Hilfeseite sie doch ignorieren und lieber "neue" Daten (zB. vom Servlet) auslesen.
Jo, das mit "ignorieren" wäre auch super, nur sehe ich irgendwie nicht, wie ich denn jetzt neue parameter an die jsp weiterleite. :bahnhof:
 
M

maki

Gast
noch hirnverbrannter, als die bisherige lösung mit diesem URL-Objekt?
Ja, denn die Antwort (=response) würde an den Client gehen, und das wäre dann der HttpClient, nicht der Browser ;)
Man kann nicht einfach so den Request mit einem beleibigen Response verknüpfen, die zwei gehören zusammen, so wie sie gekommen sind.

Jo, das mit "ignorieren" wäre auch super, nur sehe ich irgendwie nicht, wie ich denn jetzt neue parameter an die jsp weiterleite
Mit setAttributte(..) kannst du Objekte an den Request dranhängen.

Die Servlet Spek. enthält eigentlich alle diese Infos und vieles mehr ;)

Ps: Ab Servlet Spek 2.3 kannst du auch ServletFilter schreiben.
 

0x7F800000

Top Contributor
Jo, so funktioniert's, super :toll:
Besten Dank :applaus:
Ich idiot hab's mir natürlich siebzig milliarden mal komplizierter gemacht, als es ist ???:L
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H What is the Life Cycle of an Object Created Within/Outside of a Servlet? Will that item be destroyed after the session ends? Java Basics - Anfänger-Themen 1
J MySQL Datumsabfrage über ResultSet in Java-Servlet Java Basics - Anfänger-Themen 4
J javax.servlet.ServletException: Name is null Java Basics - Anfänger-Themen 7
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
E Pdf-Document lässt sich im Servlet nicht öffnen Java Basics - Anfänger-Themen 5
E Erste Schritte Java Webeintwicklung (JSP/Servlet), wie am Besten einsteigen? Java Basics - Anfänger-Themen 0
S Java Servlet - Suche Java Basics - Anfänger-Themen 1
R Upload Servlet: Ausgabe nicht korrekt Java Basics - Anfänger-Themen 2
H Variablen Servlet. Int i global Java Basics - Anfänger-Themen 4
C Inputreader Servlet Nullpointerexception Java Basics - Anfänger-Themen 6
B Servlet und Eclipse Java Basics - Anfänger-Themen 2
B Servlet ausfuehren Java Basics - Anfänger-Themen 4
O Servlet Klassen ? Java Basics - Anfänger-Themen 7
B Datenzugrifft: Servlet -> Objekte Java Basics - Anfänger-Themen 4
T Servlet - oder doch nicht? Java Basics - Anfänger-Themen 4
T Servlet HTML-Formular Java Basics - Anfänger-Themen 9
F Aus Servlet in JSP schreiben Java Basics - Anfänger-Themen 2
T Servlet wird nicht erkannt Java Basics - Anfänger-Themen 10
X Kurve im Servlet zeichnen lassen Java Basics - Anfänger-Themen 4
P Problem mit Servlet Java Basics - Anfänger-Themen 9
D Periodische Aufgaben erledigen in Webanwendung (Servlet/JSP) Java Basics - Anfänger-Themen 7
I Probleme mit Tomcat / Servlet auf Linux (Debian) Java Basics - Anfänger-Themen 7
Tandibur [erledigt] jsp überträgt nicht alle Parameter an Servlet Java Basics - Anfänger-Themen 2
D Servlet kann nicht auf Instanz zugreifen Java Basics - Anfänger-Themen 10
D Servlet mit Utilities Java Basics - Anfänger-Themen 14
J Servlet Interface javax.servlet.Servlet Java Basics - Anfänger-Themen 2
G Parameter in Servlet weiterleiten Java Basics - Anfänger-Themen 5
A Finde javax.servlet.* nicht Java Basics - Anfänger-Themen 6
G JSP, Applet oder Servlet? Java Basics - Anfänger-Themen 8
0x7F800000 Servlet: wo bekommt man die eigene adresse? Java Basics - Anfänger-Themen 6
O Weiterleitung in einem Java-Servlet Java Basics - Anfänger-Themen 5
O Jar-Archiv im Servlet verwenden Java Basics - Anfänger-Themen 3
G Servlet Package wo herunterladen? Java Basics - Anfänger-Themen 2
G doGet und doPost im Servlet nicht überschrieben Java Basics - Anfänger-Themen 9
P Servlet unterschiedliche Server Java Basics - Anfänger-Themen 2
W Servlet - out of memory Java Basics - Anfänger-Themen 7
W servlet imports nicht unterstützt Java Basics - Anfänger-Themen 3
F Applet --> Servlet --> Applet Java Basics - Anfänger-Themen 2
K Problem mit javax/servlet/http/HttpServletRequest.java Java Basics - Anfänger-Themen 2
J Servlet Error Java Basics - Anfänger-Themen 11
D Aus Anwendung Zugriff auf ein Servlet Java Basics - Anfänger-Themen 5
P konsolen ausgabe bei servlet Java Basics - Anfänger-Themen 2
S Methoden aus einem Servlet in einer JSP verwenden Java Basics - Anfänger-Themen 5
T Wo Daten ablegen für mehrere Servlet-Instanzen? Java Basics - Anfänger-Themen 2
G import javax.servlet cannot be resolved Java Basics - Anfänger-Themen 1
Z Wo wird ein Servlet gespeichert ? Java Basics - Anfänger-Themen 2
I eine Klasse aus der Jar-Datei aus dem Servlet starten Java Basics - Anfänger-Themen 4
N Probleme mit import von javax.servlet.* Java Basics - Anfänger-Themen 3
T komplexe Strukturen in Servlet-Context speichern möglich? Java Basics - Anfänger-Themen 5
T servlet synchronisationsproblem Java Basics - Anfänger-Themen 4
P Servlet wird nicht gefunden Java Basics - Anfänger-Themen 4
A fileupload mit servlet Java Basics - Anfänger-Themen 6
P asynchrone Kommunikation Applet Servlet mit RMI möglich Java Basics - Anfänger-Themen 4
G Übergabe Variablen von Servlet zu JSP? Java Basics - Anfänger-Themen 4
G Formularübergabe in Servlet endet mit null. Java Basics - Anfänger-Themen 2
S Jakarta FileUpload Servlet funktioniert nicht Java Basics - Anfänger-Themen 17
G Servlet gibt über request nur null zurück Java Basics - Anfänger-Themen 3
G problem mit servlet import Java Basics - Anfänger-Themen 4
W servlet nicht gefunden Java Basics - Anfänger-Themen 8
R Servlet - JSP Java Basics - Anfänger-Themen 2
G Servlet geht nicht Java Basics - Anfänger-Themen 5
G hilfe jsp/servlet,jdbc api running on tomcat server+webProxy Java Basics - Anfänger-Themen 8
G Servlet aus programm abfragen Java Basics - Anfänger-Themen 9
H JSP Kein Durchblick. Servlet <-> JSP Java Basics - Anfänger-Themen 7
I Bean<>Servlet ? Java Basics - Anfänger-Themen 6
D Datentransfer via Servlet Java Basics - Anfänger-Themen 2
M Applet sendet daten an servlet und servlet wieder an applet Java Basics - Anfänger-Themen 5
M Servlet position bestimmen Java Basics - Anfänger-Themen 3
J Servlet - Datei auf Server speichern und Ausgabe Java Basics - Anfänger-Themen 5
G Servlet wird nicht importiert? Java Basics - Anfänger-Themen 3
C Servlet & tomcat 5.0.28 Java Basics - Anfänger-Themen 7
S Servlet-Anfänger Java Basics - Anfänger-Themen 4
G Mein Servlet ist "not available" Java Basics - Anfänger-Themen 12
M Kann neues Servlet nicht hinzufügen Java Basics - Anfänger-Themen 5
D Beispiel-Servlet erstellen Java Basics - Anfänger-Themen 4
H Unterbrochener Link im Fomular bei Servlet-Aufruf Java Basics - Anfänger-Themen 4
E Webshop-Servlet: Problem beim Speichern der Bestellmenge Java Basics - Anfänger-Themen 3
M hilfe :} möchte servlet daten erfasssen-> hashmap speiche Java Basics - Anfänger-Themen 3
Z Servlet/Tomcat Problem Java Basics - Anfänger-Themen 3
R Methoden Methode ruft Methode auf, ruft Methode auf (mit Objekten) Java Basics - Anfänger-Themen 4
T Methoden [GELÖST ]Warum ruft sich die Methode von alleine auf? Java Basics - Anfänger-Themen 3
T Methoden Welches Objekt ruft Methode auf? Java Basics - Anfänger-Themen 6
O Starte Timer, während anderer Timer noch läuft. Ruft dies Schwierigkeiten hervor? Java Basics - Anfänger-Themen 0
C Wer ruft die Methode auf? Java Basics - Anfänger-Themen 3
J Wer oder was ruft die "paintComponent()" Methode auf? Java Basics - Anfänger-Themen 19
W repaint() ruft paint() nicht auf Java Basics - Anfänger-Themen 9
R run ->eclipse ruft falsche Programme auf Java Basics - Anfänger-Themen 5
T methode ruft sich selbst auf Java Basics - Anfänger-Themen 28
G Clientanwendung ruft JSP auf Serverseite auf. Java Basics - Anfänger-Themen 3
R Wie ruft Eclipse java auf? Java Basics - Anfänger-Themen 4
U Klasse ruft sich selber auf? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben