Сведения о вопросе

Kirushaa

16:03, 1st July, 2020

Теги

java   http   servlets    

Доступ к переменным post с помощью Java Servlets

Просмотров: 393   Ответов: 5

Что такое Java эквивалент PHP $_POST ? После часа поисков в Интернете я все еще нигде не приблизился.



  Сведения об ответе

lool

18:03, 1st July, 2020

Вот простой пример. Я не увлекался ни 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");
    ....
    ....
  }
}


  Сведения об ответе

SKY

18:03, 1st July, 2020

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


  Сведения об ответе

VCe znayu

18:03, 1st July, 2020

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


  Сведения об ответе

baggs

18:03, 1st July, 2020

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


  Сведения об ответе

VERSUION

18:03, 1st July, 2020

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

Map params = servReq.getParameterMap();

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

String userId=servReq.getParameter("user_id");


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться