Как отправить параметры запроса через URL в JSP (HTTP Status 500: Внутренняя ошибка сервера) - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь отправить параметры запроса через этот URL-адрес со своей страницы JSP на страницу сервлета

<form method="get" action="<%=request.getContextPath()%>/downloadFileServlet?id="<%=rs.getInt("id") %> >

Код на странице сервлета для получения этих параметров:

int uploadId = Integer.parseInt(request.getParameter("id"));

Но яЯ не могу это сделать, потому что URL-адрес, который я проверяю в Chrome, показывает

http://localhost:8080/MajorProject/downloadFileServlet?

, и я собираюсь показать это

http://localhost:8080/MajorProject/downloadFileServlet?id=(whatever the id value is)

Дайте мне знать, если вам нужен исходный код и трассировка стека.

1 Ответ

0 голосов
/ 19 мая 2018

Как указано в спецификациях ( RFC1866 , стр. 46; HTML 4.x , раздел 17.13.3):

Если метод «get»"и действие представляет собой HTTP URI, пользовательский агент принимает значение действия, добавляет`? 'к нему затем добавляется набор данных формы , закодированный с использованием типа контента application / x-www-form-urlencoded.

Таким образом, в вашей ситуации вы «нарушаете» спецификациюуказав параметр url самостоятельно.


Чтобы достичь желаемого, вы можете использовать скрытые поля ввода, например:

<form action="${context}/downloadFileServlet" method="GET">
  <input type="hidden" name="id" value="<%= rs.getInt("id") %>" /> 
  <input type="submit" /> 
</form>
...