Servlets: Parameterübergabe über hyperlink

Hallo.
Ich weiss, wie ich meine Parameter über Inputfelder und Buttons von Servlet SA an Servlet SB übergeben kann.

Ich möchte nun jedoch folgendes machen. Mein Servlet SA liest die Datensätze aus einer DB-Tabelle. nun möchte ich links neben diesen
Datensätze einen „edit“-Link einbauen und sobald ich dann auf mein
„edit“-Link klicke, möchte ich meinen Servlet SB aufrufen und dabei
den primaryKey und eventl. noch 2 weitere Params übergeben?
Wie kann ich das realisieren??
Danke,
Fabian

Hi,

warum packst Du die Werte nicht in die Session?

Gruss,

Herb

Hi Herb,
das könnte ich machen. Hast Du recht.
Aber die Sache mit den Links möchte ich gern wissen:
kann ich einfach meinen Link „überschreiben“ in dem ich sage:
http://10.xx.xx.xx:xxx/servlets/SB?id=5

Gruss
Fabian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Verstehe ich recht, dann hast Du:

eine Anzeige.jsp

//(oder so ähnlich)


for(i;:wink: //(Vector-Länge) 
//dann noch den Rückgabe-Datensatz in einer Schleife aus dem Vector extrahieren

...

[Also bei mir hat das so immer geklappt, wichtig ist ...](...servlet?primaryKey=%3C%25=%2520datensatz.getKey()%25%3E&param1=%3C%25=datensatz.getParam1()%25%3E%250D%250A%3C/td%3E%250D%250A%250D%250A//oder%2520so%2520%25C3%25A4hnlich???%250D%250A%3C/PRE%3E%250D%250A%250D%250A%250D%250Aund%2520in%2520Deinem%2520Servlet%2520k%25C3%25B6nntest%2520Du%2520dann%2520folgendes%2520schreiben:%250D%250A%250D%250A%3CPRE%3E%250D%250AdoGet(..%2520req,..%2520res)%250D%250A%250D%250AString%2520Key%2520=%2520(String)req.getParameter()

Hi,

ja, das kannst Du so machen.

Gruss,

Herb

nun über Session Tracking!
Hi Herb,
soweit alles paletti! Das mit Linküberschreiben funktioniert.
Nun hast Du den kreativen Vorschlag gemacht, ich könnte dies über Session lösen. Mein generelles Problem stellt sich wie folgt dar:

Meine Datensätze, die ich aus der Datenbank lese haben üblicherweise ID’s und beim auswählen eines Datensatzes will ich die ID der ausgewählten übergeben.
In allen Tutorials und Bücher, die ich zu fassen bekommen habe, wo dieses Thema darin beschrieben ist, geht es um einfache eindeutige Felder mit eindeutigen Bezeichnungen, die man dann über diese Session im 2. Servlet aufgreift! Mein Scenario lautet nun so:
ich bekomme bei meiner Suchabfrage 300 Datensätze. Nun wähle ich
einen aus…

1.- Wie sollen die ID’s auf der Suchmaske (SA-Servlet) „versteckt“
bzw. untergebracht werden.
In allen Beispielen sieht man z.B. dass diese Felder irgendwie eine
bezeichnung haben wie z.B.:
Soll ich nun alle meine ID-Felder anders bezeichnen?
z.B. etc…

Wie funktioniert das?

2.- woher weisst mein SB-Servlet (2. Servlet), welchen Datensatz ich gewählt habe und welche ID er sich greifen soll?

Herzlichen Dank.
Fabian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

öhm, ich hätte daran gedacht im SA Servlet mit request.getSession().setAttribute(…) die ID in der Session zu speichern und entsprechend im zweiten Servlet die Werte wieder aus der Session zu lesen.

Gruss,

Herb

Problem is noch da!!!
Hi winni,
danke für die Erklärung.
Ich wollte jedoch das ganze nur mit Servlets realisieren.
Ich habe einfach folgendes Problem:
wie sieht der code aus, wenn ich einen Datensatz auswähle (über Link ‚edit‘) und dann rufe ich einen 2. Servlet auf, wobei ich die
primaryKeyID in meine session schreibe! Wie soll der
Link ‚edit‘ aufgebaut werden und wie schreibe ich den PS des
ausgewählen Datensatzes in meine Session?
Danke,
Fabian

Verstehe ich recht, dann hast Du:

eine Anzeige.jsp

//(oder so ähnlich)

for(i;:wink: //(Vector-Länge)
//dann noch den Rückgabe-Datensatz in einer Schleife aus dem
Vector extrahieren

[Also bei mir hat das so immer geklappt, wichtig ist …](…servlet?primaryKey=%3C%25=%250D%250A:datensatz.getKey()%25%3E%25C2%25B6m1=%3C%25=datensatz.getParam1()%25%3E%250D%250A:%3C/td%3E%250D%250A:%250D%250A://oder%2520so%2520%25C3%25A4hnlich???%250D%250A:%3C/PRE%3E%250D%250A:%250D%250A:%250D%250A:und%2520in%2520Deinem%2520Servlet%2520k%25C3%25B6nntest%2520Du%2520dann%2520folgendes%2520schreiben:%250D%250A:%250D%250A:%3CPRE%3E%250D%250A:doGet(…%2520req,…%2520res)%250D%250A:%250D%250A:String%2520Key%2520=%2520(String)req.getParameter()

Hi.

Meine Datensätze, die ich aus der Datenbank lese haben
üblicherweise ID’s und beim auswählen eines Datensatzes will
ich die ID der ausgewählten übergeben.

Nun das ist usus. Du hast für jeden Datensatz einen primary key - Dieser sollte auch an das zweite Servlet übergeben werden.

In allen Tutorials und Bücher, die ich zu fassen bekommen
habe, wo dieses Thema darin beschrieben ist, geht es um
einfache eindeutige Felder mit eindeutigen Bezeichnungen, die
man dann über diese Session im 2. Servlet aufgreift! Mein
Scenario lautet nun so:
ich bekomme bei meiner Suchabfrage 300 Datensätze. Nun wähle
ich
einen aus…

Die Frage ist, wie du die Ausgabe der Auswahlseite vom ersten Sevlet gestaltet hast.

Hast du alle Datensätze einfach untereinander als Links notiert?
Dann könnte das ganze so aussehen:

1. Datensatz editieren
2. Datensatz editieren


x. Datensatz editieren

Oder hast du alle Datensätze in ein HTML - select geschrieben?
Dann könnte das ganze so aussehen:

  1. Datensatz2. Datensatz

    x. Datensatz

in beiden Fällen kannst du den URL- bzw. Formparameter id im zweiten servlet folgendermaßen abrufen (Hat schon jemand geschrieben):

String theIdToBeWorkedOn = request.getParameter(„id“);
if (theIdToBeWorkedOn == null) theIdToBeWorkedOn = someDefaultValue;

Dann kannst du zB so weitermachen:

String mySQLString = „select * from table where id=“ + idToBeWorkedOn + „;“;
usw.

mfG,

J.P.Jarolim