Я пробую простую программу с сервлетом 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, если это поможет.