HTML-файл не публикует параметры GET в запросе GET - PullRequest
1 голос
/ 27 апреля 2011

Я пробую простую программу с сервлетом Java, в которой будет отображаться HTML-страница с текстовым полем и кнопкой отправки. Как только пользователь введет данные и отправит их, на следующей странице отобразится Hello. Вызов URL-адреса сервлета с параметром GET напрямую показывает, что он работает нормально. Но когда я открываю файл HTML и отправляю данные оттуда, запрос GET не формируется должным образом, то есть параметры не передаются по адресу URL 'action'.

Вот HTML-код:

<!DOCTYPE html>
<html>
 <head>
  <title>Hello</title>
 </head>
 <body>
  <form action="/TestServlt/TestClass" name="myform" method="get">
    Enter your name: <input type="text name="username">
    <br />
    <input type="submit" value="Go">
  </form>
 </body>
</html>

и код сервлета:

package in.lguruprasad;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class TestClass extends HttpServlet implements Servlet {
static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    PrintWriter output = response.getWriter();
    response.setContentType("text/html");
    String name = request.getParameter("username");
    output.println("Hello "+name+"!");
    output.flush();
    output.close();
}
}

Сервлет сопоставлен с /TestServlt/TestClass URL, и форма отправки перенаправляет http://localhost:8080/TestServlt/TestClass вместо http://localhost:8080/TestServlt/TestClass?username=<user input>, что будет работать нормально. Вывод, который я получаю: «Привет, ноль!».

Во всех браузерах форма отправляется без параметра get. Я попытался написать похожий метод doPost, но он тоже не сработал.

В чем здесь проблема и как ее исправить?

Я использую Eclipse 3.1.2, Apache Tomcat 5.5, JDK 1.6.25, если это поможет.

1 Ответ

4 голосов
/ 27 апреля 2011

В html-вводе отсутствует цитата:

Enter your name: <input type="text name="username">

должно быть

Enter your name: <input type="text" name="username">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...