HTML文件未在GET请求中发布GET参数

时间:2011-04-27 13:07:48

标签: html forms servlets get

我正在尝试使用Java Servlet的简单程序,其中将显示带有文本框和提交按钮的HTML页面。一旦用户输入数据并提交数据,下一页将显示Hello。使用GET参数直接调用servlet URL表明它工作正常。但是当我打开HTML文件并从那里提交数据时,GET请求没有正确形成,即参数没有传递到'action'URL的地址中。

以下是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>

和servlet代码:

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();
}
}

servlet映射到/TestServlt/TestClass URL,表单提交重定向http://localhost:8080/TestServlt/TestClass而不是http://localhost:8080/TestServlt/TestClass?username=<user input>,这样可以正常工作。我得到的输出是'Hello null!'。

在所有浏览器中,表单提交时不带get参数。我尝试编写类似的doPost方法,但这种方法也不行。

这里有什么问题以及如何解决?

如果有帮助,我正在使用Eclipse 3.1.2,Apache Tomcat 5.5,JDK 1.6.25。

1 个答案:

答案 0 :(得分:4)

您在html输入中缺少引号:

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

应该是

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