Accesso alle variabili post utilizzando le servlet Java
Domanda
Qual è l'equivalente Java di PHP $_POST
?Dopo aver cercato sul web per un'ora, non sono ancora arrivato a niente.
Soluzione
Tuo HttpServletRequest
l'oggetto ha un getParameter(String paramName)
metodo che può essere utilizzato per ottenere i valori dei parametri. http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html#getParameter(java.lang.String)
Altri suggerimenti
Ecco un semplice esempio.Non mi sono divertito con l'HTML o il servlet, ma dovresti farti un'idea.
Spero che questo ti aiuti.
<html>
<body>
<form method="post" action="/myServlet">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" />
</form>
</body>
</html>
Ora per il servlet
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MyServlet extends HttpServlet {
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String userName = request.getParameter("username");
String password = request.getParameter("password");
....
....
}
}
Le variabili POST dovrebbero essere accessibili tramite l'oggetto richiesta: HttpRequest.getParameterMap().L'eccezione si verifica se il modulo invia dati MIME in più parti (il FORM ha enctype="multipart/form-data").In tal caso, è necessario analizzare il flusso di byte con un parser MIME.Puoi scriverne uno tuo o usarne uno esistente come Apache Caricamento file Commons API.
Le risposte precedenti sono corrette ma ricorda di utilizzare l'attributo name nei campi di input (modulo html) altrimenti non otterrai nulla.Esempio:
<input type="text" id="username" /> <!-- won't work -->
<input type="text" name="username" /> <!-- will work -->
<input type="text" name="username" id="username" /> <!-- will work too -->
Tutto questo codice è valido HTML, ma utilizzando getParameter(java.lang.String) sarà necessario che l'attributo name sia impostato in tutti i parametri che desideri ricevere.
Per ottenere tutti i parametri del post c'è Map che contiene il nome del parametro di richiesta come chiave e il valore del param come chiave.
Map params = servReq.getParameterMap();
E per ottenere parametri con nome noto è normale
String userId=servReq.getParameter("user_id");