Servlet: Problem mit getParameterValues

nEp

Aktives Mitglied
Hallo,

ich habe ein kleines Problem das ich nicht so richtig verstehe und ich hoffe dass da jemand Licht ins Dunkel bringen kann...

Ich habe folgendes einfaches Formular in einer JSP. Bei Submit wird ein Servlet aufgerufen.
Java:
...
<form method="GET" action="MyServlet">
   <input type="checkbox" name="dataSource"  value="wert1" checked />
   <input type="checkbox" name="dataSource"  value="wert2" checked />
   <input type="checkbox" name="dataSource"  value="wert3" />
    ....
   <input type="text" value="unwichtig" name="unwichtig" />
    ....
</form>
...

Servlet-Auszug:
Java:
...
//Im Servlet:
String unwichtig = request.getParameter("unwichtig");
String[] dataSources = request.getParameterValues("dataSource");
PrintWriter writer = response.getWriter();
writer.write(dataSources.length);
...

Wenn ich nun das Formular im Browser aufrufe dann funktioniert das ganze auch ohne Probleme, d.h. wenn zwei Häkchen markiert sind, wird hier auch 2 als Länge ausgegeben und ich kann natürlich auch später auf die einzelnen Werte zugreifen.

Ich will das Servlet aber ebenso direkt im Browser aufrufen können und dort die Parameter anhängen, also so:
Java:
http://myserver/MyServlet?unwichtig=irgendwas&dataSource=wert1&dataSource=wert2

Hier wird aber IMMER nur der erste dataSource Parameter mitgegeben an das Servlet, d.h. als Länge wird hier auch immer nur 1 ausgegebn, und wie gesagt, ich kann dann nur auf den ersten dataSource-Wert zugreifen.
Warum funktioniert das nicht?
 
S

SlaterB

Gast
hast du beim funktionierenden Browser-Request mal den Original-ParamString angeschaut, etwa
request.getQueryString()
request.getRequestURI()
oder ähnliches?

wie sieht der aus, vielleicht musst du
Java:
htt p://myserver/MyServlet?unwichtig=irgendwas&dataSource[0]=wert1&dataSource[1]=wert2
angeben oder ähnlich komplexere Syntax
 

nEp

Aktives Mitglied
Hallo SlaterB,

danke für die schnelle Antwort.

Also wenn ich es via Formular aufrufe, dann sieht der Query-String so aus:
unwichtig=irgendwas&dataSource=blup&dataSource=asdf

Beim direkten Aufruf ebenfalls.

Das mit der anderen Syntax ist eine gute Idee, daran hatte ich noch gar nicht gedacht. Die Array Syntax hat aber leider nicht funktioniert, da kam dann gar nichts mehr an.

Was ich noch dazu sagen muss, ist, dass ich mich hier in keiner normalen Servlet-Umgebung befinde, sondern in einer Portal-Umgebung, was aber nichts daran ändert, dass das dennoch irgendwie funktionieren sollte, da ich hier ja auch nach dem J2EE-Standard programmiere (HttpServletRequest, etc.)
 
S

SlaterB

Gast
hmm, zu dumm, ich bin in dem Thema grad nicht drin, kann nichts testen, mir fällt auch keine passende google-Suche ein,
wär schon interessant zu analysieren, was bei den beiden Requests anders ist,
vielleicht gibt es noch weitere versteckte Parameter in der kompletten HTTP-Nachricht, kannst du dir die genauer anschauen?

ansonsten hast du wie du sagst beim direkten Aufruf immerhin den Querystring mit allen Infos, dort könntest du manuell die Parameter korrekt herausparsen,
keine schöne Vorstellung natürlich, mehr kann ich dazu leider nicht beitragen
 

nEp

Aktives Mitglied
Hallo SlaterB,

danke für die Hilfe, ich glaube du brauchst da gar nicht so wahnsinnig in dem Thema drin sein, denn das was du (und auch ich) geschrieben habe stimmt nämlich auch.

Hab mal ein bisschen tiefer gegraben und diverse Ausschlusstests gemacht... Also so wie ich es im Code habe, müsste es tatsächlich funktionieren. Und es funktioniert auch, nur in gewissen "Spezial"Fällen funktioniert es nicht. Wie ich schon erwähnte befinde ich mich in einer Portal-Umgebung (... von SAP ...), und hier kann ich dieses Servlet auch in eine Art Container einbetten, was zur Folge hat, dass End-User hier noch einige Personalisierungen für gewisse Einstellungen tätigen können. Ich kann das Servlet aber auch einfach direkt ohne diesen Container laufen lassen.

Wenn ich es direkt laufen lasse, funktioniert es. Ist es in diesem Container eingebettet (wie bei mir) funktioniert es nicht mehr, und man kriegt nur den ersten Parameterwert. Riecht daher stark nach einem Bug, es sei denn es gibt da tatsächlich eine besondere Aufrufsyntax. Da diese aber nicht dokumentiert ist, werde ich das mal als Produktfehler melden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Problem mit Checkboxen im Servlet erkennen Web Tier 3
D Java EE Servlet login Problem Web Tier 1
S Problem mit Servlet und Zugriff auf Orace XE Datenbank Web Tier 2
U JSP form-Daten (ohne name-Attribut) an Servlet = Problem Web Tier 6
E Java Servlet doPost request, Mehrere Parameter mit demselben Namen aus Tabellenzeilen Web Tier 2
R servlet-mapping führt zu 404-Fehlern Web Tier 0
B Servlet mit TomCat9 Web Tier 0
A redirect mit servlet-mapping in web.xml Web Tier 4
J Wie Mouse Event in Servlet einbinden? Web Tier 1
D JSF Servlet Mapping Web Tier 3
J Session Servlet - JavaScript Web Tier 6
D Servlet 1 Servlet für alles - Wie Cookies per Ajax? Web Tier 1
Todesbote Servlet MVC Design Pattern Web Tier 1
A Anfänger-Frage Servlet/Applet/JSP Web Tier 0
Shams Allgemeine Verständnisfrage zum Thema Servlet (in Vaadin) Web Tier 2
H File Output Servlet Web Tier 6
I vTiger Astersik Connector: NO JSP Support for , did not find org.apache.jasper.servlet.JspServlet Web Tier 0
OnDemand Servlet oder JSP Web Tier 12
H Servlet/JSP und OSGI Web Tier 2
L Servlet Datenbank Web Tier 0
W Servlet SPEICHERN UNTER-Dialog für mehrere Dateien Web Tier 4
A Faces Context nicht mehr erreichbar nach Servlet Aufruf Web Tier 1
S Java Bean und Java Servlet Web Tier 2
D Servlet Servlet Weiterleitung static html Web Tier 5
G GWT 404 - Servlet nicht gefunden Web Tier 6
H Applet wirft AccessControlException bei File von Servlet Web Tier 3
H Servlet lässt sich nicht deployen Web Tier 7
C Kommunkation Servlets/Browseraufruf Servlet Web Tier 4
F.S.WhiTeY Servlet Servlet wird nicht angesprochen Web Tier 3
J Servlet Zugriff Servlet Web Tier 11
A JSON von JavaScript an Servlet Web Tier 9
K Servlet + JSP: JSP-Seite ein Array/ArrayList überliefern vom Controller-Servlet Web Tier 8
0 Servlet.Properties Web Tier 3
P Servlet Wo gibt es das javax.servlet.Servlet? Web Tier 2
H Servlet Servlet nimmt HTTP-GET mit Parameter entgegen Web Tier 2
5 Bild Pfad Servlet Web Tier 2
D Datenbankzugriff im Servlet Web Tier 5
H Servlet Apache Geronimo: Servlet nicht erreichbar Web Tier 2
S Ich brauche Buchempfehlung über JSP und Servlet Web Tier 2
A Parameterübergabe an Servlet und Aufruf von Servlets per Java Code Web Tier 7
S Auswahl eine Zeile von einer HTML Tabelle im Servlet Web Tier 4
K Servlet URL Mapping Web Tier 3
S ClassPath für Servlet Web Tier 3
reibi Servlet Logging - Standard Servlet Web Tier 5
K Portlet, Servlet doGet und doPost Web Tier 4
reibi Servlet Alleinlaufendes Servlet bauen Web Tier 6
P Servlet wird nicht gefunden - HTTP Error 503 Web Tier 7
lukas24680 Servlet pro Request Web Tier 2
C Pageing mit JSp&Servlet Web Tier 5
D JSP JSP integriert ein Servlet... Wie? Web Tier 7
I Servlet vor Browser URL-Direktzugriff schützen Web Tier 3
N Servlet ausführen Web Tier 26
B statische Html Seite als response erhalten (Servlet) Web Tier 3
A javax/servlet/jsp/jstl/core/Config Web Tier 1
F Servlet mapping ;-) Web Tier 3
H Servlet Mapping mit JSF Web Tier 8
B (JSP)+(Struts2)+(Servlet) Konfiguration web.xml Web Tier 2
W MVC mit Bean, JSP und Servlet Web Tier 6
T Button im Servlet - Werte übergeben Web Tier 2
J werte per post an servlet übergeben und auswerten Web Tier 3
ruutaiokwu HttpServletRequest-instanz in servlet und JSP unterschiedlich? Web Tier 5
T Bild durch anderes Bild ersetzen mit Servlet Web Tier 3
E Mein erstes Servlet Web Tier 8
S Servlet automatisch aufrufen Web Tier 2
J Kommunikation zwischen Servlet und EJB Web Tier 6
C Image in Servlet Web Tier 2
S Servlet File Upload (API oder JSPSmart download) Web Tier 4
N API Nutzung SERVLET Web Tier 12
J Memory Leak in Servlet nach längere Laufzeit Web Tier 6
ruutaiokwu template engine gesucht ohne abhängigkeit zum servlet container Web Tier 2
G Servlet Ausgabe richtig benutzen Web Tier 4
W Servlet auf sich selbst verweisen lassen (Anfängerfrage) Web Tier 6
M Servlet Ausführungsfehler Web Tier 4
D Servlet alle 6h ausführen Web Tier 5
M Servlet & JSP Organisation Web Tier 2
J seltsames Auslastungsproblem bei Servlet Web Tier 7
ruutaiokwu JSF - läuft ausserhalb des servlet-containers? Web Tier 5
R Direkten Servlet-Aufruf verhindern (JSP) Web Tier 3
K Formularweiterleitung an Servlet Web Tier 5
J Dateiupload- Servlet Web Tier 14
H Probleme beim Aufrufen von Java- oder Servlet-Methoden aus Javascript Web Tier 2
G Kommunikation Servlet + Applikation Web Tier 4
megachucky Welche Servlet-Version benötigt GWT 2.0? Web Tier 13
X Servlet Select box Web Tier 6
S Java Servlet Content Type Web Tier 3
E Servlet zum speichern einer Datei in einer Datenbank Web Tier 3
M Servlet neuladen Web Tier 2
H Wie wurde ein Servlet aufgerufen Web Tier 2
J Servlet soll XML ausgeben und Javascript soll dieses einlesen Web Tier 3
H servlet fehlermeldung Web Tier 3
W JSP/Servlet Web Applikation programmierung Web Tier 9
J Faces response aus einem anderen Servlet heraus rendern Web Tier 4
E Servlet mit einem Link aufrufen? Web Tier 13
D Servlet FacesServlet is not available und Web Tier 3
S servlet bedienen mit get und post parameter Web Tier 10
S Laden von globalen Resourcen im Servlet Container..? Web Tier 3
T JBoss + Servlet + HTML Fileupload + Encoding Web Tier 1
2 Servlet: Pfad zu Webcontent Web Tier 6
J Servlet Sicherheit Web Tier 4
J struts2: vom value stack zum servlet Web Tier 14

Ähnliche Java Themen

Neue Themen


Oben