ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
762
762
EMPFEHLEN
-
13.06.10 18:30 #1
- Registriert seit
- Oct 2004
- Beiträge
- 23
Hi all,
ich habe von meinem Prof die Aufgabe bekommen Daten eines Benutzers zu sammeln und diese mit Hidden Fields zu übergeben.
Der Benutzer muss zuerst seinen Vornamen eingeben. Auf der nächsten Seite wird der Vorname dann ausgegeben und es muss der Nachname
eingegeben werden.
Der Vorname wird dann per Hidden Field an das nächste Servlet weitergeleitet und der Nachname "normal".
Diese beiden Werte möchte ich dann per Java Servlet ausgeben lassen.
Hier mal mein Form Tag des Servlets, dass den Nachnamen verlangt:
Das +benutzerName+ enthält den Vornamen aus dem Servlet davor:Code :1 2 3 4 5
out.println(" <form method=\"get\" action=\"HiddenDBOrt\">"); out.println(" <INPUT TYPE=hidden NAME=\"hiddenvorname\" VALUE=\""+benutzerName+"\">"); out.println(" <input type=\"text\" name=\"Nachname\" value=\"\">"); out.println(" <br><br><br>"); out.println(" <input type=\"submit\" name=\"button2\" value=\"Klick hier!\">");
Nun möchte ich, dass das Servlet HiddenDBOrt den Vornamen und den Nachnamen ausgibt:Code :1
String benutzerName=req.getParameter("vorname");
Deklarieren der Variablen:
Ausgabe der Variablen:Code :1 2
String benutzerName=req.getParameter("vornahme"); String nachname=req.getParameter("Nachname");
Der Nachname wird nun korrekt angezeigt, anstelle des Vornamens wird allerdings "null" ausgegeben.Code :1
out.println(" <h1>Hallo Herr/Frau, "+benutzerName+""+nachname+ "! </h1> ");
+bentzerName+ hat also keinen Wert, aber warum nicht?
Könnt ihr mir vielleicht helfen?
Gruß
Shasty
-
14.06.10 11:03 #2
- Registriert seit
- Jun 2010
- Beiträge
- 21
Hi!
Soweit ist dein Ansatz schon richtig.. Aber mal was nebenbei. Ich finde diesen Lösungsansatz ziemlich ineffizient. Für jede Eingabe ein neues Servlet zu machen mit Hidden Fields. Warum nicht erst nur den Vornamen an das Servlet 1 und dann nur den Nachnamen an Servlet 1.. und wenn alle Infos dann durch sind, dann nach hinten ans Backend gehen. Zu beachten ist allerdings dabei, dass es Systemweit nur eine Instanz dieses Servlets geht. Das heißt du solltest den Vornamen z.B. zusammen mit der JSessionId des Nutzers in eine Hashtable (nicht Hashmap, da diese nicht Threadsafe ist) speichern. Halte ich persönlich für besser. Aber es wird ja gründe geben, warum du das so machen sollst.
So jetzt zu deinem Problem:
Also du machst das in meinen Augen schon mal richtig, allerdings begehst du einen kleinen Flüchtigkeitsfehler wenn du den Vornamen aus dem Hidden Field holst...weil das FormularFeld heißt "HiddenVorname" oder so und später im Servlet rufste getParameter("vorname")auf. Das ist falsch bei getParameter() muss immer der Name des Formularsfeldes übegeben werden.
Weiterer Tipp:
Überlege dir, ob du aus Design-Gründen nicht lieber auf JSP's setzt, weil ich perösnlich bin kein Fan davon in den Servlets HTML Code abzuschicken. Das ist für mich schlechter Stil, da es nicht im Sinne des MVC-Patterns ist.
In diesem Sinne!
Viel Erfolg weiterhin
-
15.06.10 11:17 #3
- Registriert seit
- Oct 2004
- Beiträge
- 23
Oh ja richtig. Schön, dass ich das nach ner Stunde suchen nicht gefunden hab

Vielen Dank.
MVC ist ein gutes Stichwort.
Sagen wir ich habe eine JSP Seite, die vom Benutzer Eingaben anfordert.
Z.B. Vorname, Nachname und Wohnort.
Wie ist es denn mit JSP möglich, dass er diese drei Variablen an eine weitere JSP Seite übergibt, welche diese in eine Datenbank schreibt, ohne diese Backend JSP zu öffnen?
Denn per <form> bei HTML wird doch nach dem Abschicken automatisch die Seite aufgerufen, die die Daten verarbeitet.
Aber das soll nach MVC doch eigentlich nicht passieren oder hab ich das jetzt falsch verstanden?
-
15.06.10 13:20 #4
- Registriert seit
- Jun 2010
- Beiträge
- 21
So ganz versteh ich dein problem nicht, aber ich erzähle mal einfach, vllt hilft das.
Also in dem MVC Kontext sind die JSP's nur die Views. Darin befindet sich keine Logik und nichts. Die Servlets sind die Controller, sie nehmen die Daten von der View entgegen und übergeben diese in Richtung Datenbank oder rufen weitere Views auf. Die kannste weiter zerteilen, in dem du eine Art Verteiler-Servlet implementierst. Dieses nimmt sämtliche Anfragen deiner Views entgegen und entscheidet was er damit macht. z.B. kommt die Anfrage mit dem vornamen etc. rein in das Servlet. So das Servlet sieht "Aha, diese Daten müssen egspeichert werden. Dann ruft er ein weiteres Servlet auf, welches die Bearbeitung dieser Daten übernimmt. So und im gleichen Schritt öffnet dieses Servlet per redirect eine weitere JSP. Im Klartext heißt das dieser Verteiler kümmert sich hauptsächlich um das Laden und Austauschen der JSP und alle Anfragen die in einer Datenbank landen müssen, delegiert er weiter. Jetzt die Frage wie du die Daten vom Servlet aus wieder auf eine JSP bringst ohne HTMl-Code oder JSP-Code in deinem Servlet zu tippen. Dafürgibt es sog. Java Beans. Das sind einfache Java-Klassen mit Atrributen und getter und setter Methoden für diese Attribute. Im MVC übernhemen sie die Aufgabe des Models.
Die Verfahrensweise ist..du erzeugst im Servlet die Java bean und befüllst sie mit den Daten. Diese Bean gibs du dann per Response/Request an die JSP zurück/weiter. In der JSP fügste Java-Code ein, der die Bean as den Parameter rausholt und liest die einzelnen Attribute aus z.B. bean.getVorname().Dieser Weg funktioniert glaub ich auch andersrum. Also du erzeugst aus den Formularfelder eine Bean und schickste sie an das Servlet und das Servlet kann diese dann weiterverarbeiten.
Tipps:
Guck dir mal im Inet das Entwurfsmuster "FrontController" an und guck dir mal die Vorgehensweise mit Java Beans an (NICHT Enterprise Java Beans, das ist was anderes)
-
17.06.10 10:32 #5
- Registriert seit
- Oct 2004
- Beiträge
- 23
Ich werd mich einfach mal ein wenig mehr in das Thema einlesen.
Vielen Dank, hast mir sehr geholfen
Ähnliche Themen
-
JPG aus Servlet im Internet Explorer ausgeben
Von PetraB im Forum JavaAntworten: 1Letzter Beitrag: 14.09.10, 22:18 -
Inhalt (HTML-Quellcode) der Tabelle in ein Hidden-Input-Feld übergeben
Von Maik20 im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 03.11.08, 21:01 -
Inhalt eines XHTML Hidden Forms in Servlet korrekt auslesen
Von panzertape im Forum JavaAntworten: 0Letzter Beitrag: 03.04.06, 22:26 -
Tabelle über Servlet einlesen, in JSP ausgeben
Von AKST im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 3Letzter Beitrag: 09.01.05, 19:31 -
array in hidden field laden?
Von südpol im Forum PHPAntworten: 4Letzter Beitrag: 26.11.04, 13:12





Zitieren
Login





