Доступ к переменным записей с помощью Java-сервлетов - PullRequest
52 голосов
/ 07 августа 2008

Что такое Java-эквивалент PHP $_POST? После поиска в Интернете в течение часа я все еще никуда не подхожу.

Ответы [ 5 ]

51 голосов
/ 14 августа 2008

Вот простой пример. Мне не понравился HTML или сервлет, но вы должны понять.

Надеюсь, это поможет вам.

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

Теперь для сервлета

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");
    ....
    ....
  }
}
46 голосов
/ 07 августа 2008

Ваш HttpServletRequest объект имеет метод getParameter(String paramName), который можно использовать для получения значений параметров. http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html#getParameter(java.lang.String)

22 голосов
/ 07 августа 2008

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

1 голос
/ 19 апреля 2018

Для получения всех параметров записи есть Map, которая содержит имя параметра запроса в качестве ключа и значение параметра в качестве ключа.

Map params = servReq.getParameterMap();

И получить параметры с известным именем нормальные

String userId=servReq.getParameter("user_id");
1 голос
/ 24 ноября 2016

Предыдущие ответы верны, но не забудьте использовать атрибут name в полях ввода (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) вам потребуется установить атрибут имени во всех параметрах, которые вы хотите получить.

...