【问题标题】:HTML file not posting GET parameters in a GET requestHTML 文件未在 GET 请求中发布 GET 参数
【发布时间】:2011-04-27 13:07:47
【问题描述】:

我正在尝试一个带有 Java Servlet 的简单程序,其中将显示一个带有文本框和提交按钮的 HTML 页面。用户输入数据并提交后,下一页将显示 Hello 。直接用GET参数调用servlet URL就可以了。但是当我打开 HTML 文件并从那里提交数据时,GET 请求的格式不正确,即参数没有在“操作”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=&lt;user input&gt;,这样可以正常工作。我得到的输出是“Hello null!”。

在所有浏览器中,表单提交时都没有 get 参数。我尝试编写类似的 doPost 方法,但效果不佳。

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

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

【问题讨论】:

    标签: html forms servlets get


    【解决方案1】:

    您在 html 输入中缺少引号:

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

    应该是

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

    【讨论】:

      猜你喜欢
      • 2017-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-23
      • 2013-09-16
      • 1970-01-01
      • 2020-04-25
      相关资源
      最近更新 更多