2008-08-07 19 views

Odpowiedz

21

Zmienne POST powinny być dostępne za pośrednictwem obiektu żądania: HttpRequest.getParameterMap(). Wyjątkiem jest sytuacja, w której formularz wysyła wieloczęściowe dane MIME (FORM ma enctype = "multipart/form-data"). W takim przypadku należy przeanalizować strumień bajtów za pomocą analizatora składni MIME. Możesz napisać własną lub użyć istniejącej, takiej jak Apache Commons File Upload API.

+7

Uwaga: ta odpowiedź poprzedza wydanie Servlet 3.0 i standardowe wsparcie dla 'multipate/form-data'. Zobacz [Java EE 6 API] (http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/MultipartConfig.html) i/lub [ten post na blogu] (http: // balusc. blogspot.com/2009/12/uploading-files-in-servlet-30.html) – McDowell

46

Oto prosty przykład. Nie miałem ochoty na html lub serwlet, ale powinieneś dostać ten pomysł.

Mam nadzieję, że to pomoże.

<html> 
<body> 
<form method="post" action="/myServlet"> 
<input type="text" name="username" /> 
<input type="password" name="password" /> 
<input type="submit" /> 
</form> 
</body> 
</html> 

Teraz 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"); 
    .... 
    .... 
    } 
} 
+2

czy możesz mi powiedzieć, jak uzyskać wartość żądania POST na stronie serwletu? Używam $ .ajax call nie formować akcji i XMLHttpRequest? – selladurai

+0

moje pytanie http://stackoverflow.com/questions/6068510/i-couldnt-get-post-value-in-servlet-page – selladurai

1

Dotychczasowe odpowiedzi są poprawne, ale należy pamiętać, aby skorzystać z atrybutu nazwy w polach tekstowych (formularz HTML) lub nie dostaniesz nic. Przykład:

<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 -->

Wszystko to kod HTML jest ważny, ale przy użyciu getParameter (java.lang.String) trzeba będzie atrybut nazwa została ustalona we wszystkich parametrów, które chcesz otrzymywać.