2008-08-07 3 views

ответ

21

POST-переменные должны быть доступны через объект запроса: HttpRequest.getParameterMap(). Исключением является то, что форма отправляет многочастные данные MIME (FORM имеет enctype = "multipart/form-data"). В этом случае вам нужно проанализировать поток байтов с помощью синтаксического анализа MIME. Вы можете написать свой собственный или использовать существующий, как API Apache Commons File Upload.

+7

Примечание: этот ответ предшествует выпуску Servlet 3.0 и стандартной поддержки «multipate/form-data». См. [API Java EE 6] (http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/MultipartConfig.html) и/или [это сообщение в блоге] (http: // balusc. blogspot.com/2009/12/uploading-files-in-servlet-30.html) – McDowell 2012-03-09 09:05:49

46

Вот простой пример. Мне не понравилось html или сервлет, но вы должны получить эту идею.

Я надеюсь, что это поможет вам.

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

Теперь для 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

Можете ли вы мне позвонить, как получить значение запроса POST на странице сервлета? Я использую $ .ajax call not form action и XMLHttpRequest? – selladurai 2011-05-20 09:23:37

1

Предыдущие ответы верны, но не забывайте использовать имя атрибута в поле ввода (HTML формы) или вы не получите ничего. Пример:

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

Всего этот код HTML действителен, но с использованием getParameter (java.lang.String) вам нужно будет имя атрибут был установлен по всем параметрам, которые вы хотите получить.

Смежные вопросы