How to get param Wert aus java-servlet
Ich versuche param übergebenen Werte zu einem Java-Servlet-aber der string zurückgegeben wird, nicht korrekt ist. Ich bin die Speicherung der Werte in einer Karte und prüfen, ob der Schlüssel vorhanden ist.
Map params;
params = request.getParameterMap();
String id = params.get("id").toString();
String data = params.get("data").toString();
System.out.println("streaming" + data + " with id of " + id);
Doch wenn ich den Anruf dieses servlet über http://localhost:8080/Serv/stream/data?data=hereisdata&id=you
meine Ausgabe sieht wie folgt aus:
streaming[Ljava.lang.String;@5e2091d3 with id of [Ljava.lang.String;@36314ab8
Was bin ich?
EDIT: die vorgeschlagenen Antworten, die nicht arbeiten, ich bin auch der gesamten Klasse, da bin ich wahrscheinlich etwas Durcheinander innerhalb der Klasse:
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import Engine.Streamer;
public class AnalyzerController {
private Map params;
private String pathInfo;
private HttpServletRequest request;
public AnalyzerController(HttpServletRequest request)
{
this.params = request.getParameterMap();
this.pathInfo = request.getPathInfo();
}
public void processRequest()
{
System.out.println("procing with " + pathInfo);
switch(pathInfo){
case "/stream/data":
if(params.containsKey("id") && params.containsKey("data")) processStream();
break;
}
}
private void processStream()
{
System.out.println("we are told to stream");
String data = request.getParameter("data");
String id = request.getParameter("id");
Streamer stream = new Streamer();
stream.streamInput(data, "Analyzer", id);
}
}
Diese Linie konkret wirft der NPE: String data = request.getParameter("data");
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn man sich die docs der
Anfrage#getParameterMap()
, es gibt eineMap
von der ArtMap<String, String[]>
. Daher müssen Sie nehmen Sie das erste element aus dem WertString[]
zurückgegebene array aus der Karte.Natürlich können Sie vermeiden, all dies und direkt die Parameter aus dem request-Objekte mit dem
Anfrage#getParameter()
Methode.Edit: Blick auf Ihre Klasse code, es scheint, dass die Instanz-variable
request
ist nicht initialisiert. Initialisieren Sie, dass im Konstruktor wie diese:String[]
auf eine variable, deren WertString[]
schon?request.getParameter("id")
, Ende der Geschichte...Erhalten Sie die erforderlichen Parameter ein, anstatt die gesamte Karte
Probieren Sie etwas wie dieses.
Oder direkt aus dem Request.
String
eine variable, die zurückString
?Können Sie Anfrage Gegenstand und Methode für die Daten über
getParameter()
Sie verwenden könnengetParameterValues()
wenn mehrere Daten sind von der Seite.warum verwenden Sie
Map
?Irgendwelche speziellen, die Sie benötigen oder aus irgendeinem anderen Grund ?
oder Sie können Sie verwenden, wie diese :
getPatemeter()
auch, dass wenn Daten existieren oder nicht, mitif
oder spezifischer Funktion.Map
Ansatz ist gültig, wenn mehrere Komponenten mit dem gleichen Namen und sollten Sie abrufen alle Ihre Werte, z.B.<input type="checkbox">
.The type of the expression must be an array type but it resolved to Object
und die getParameter wirft ein NullException...getParameter()
Methode.