FORM ACTION在servlet中不会转到想要的方法



我试图从我的servlet的html表单获取信息。我的问题是我不能得到想要的方法在我的servlet上的click()方法。我的servlet在包login上,它的名字是loginServlet。如果你能告诉我我的代码有什么问题:

public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 " +
                                        "Transitional//EN">n" +
                "<HTML>n" +
                "<HEAD><TITLE>login</TITLE></HEAD>n" +
                "<BODY>n" +
                "<FORM ACTION=login/loginServlet METHOD=click>"+
                "<table border ='1'>" +
                "<tr>" +
                "<th colspan='2'>Register Account Information</th>" +
                "</tr>" +
                "<tr>" +
                "<td>Requested Username:</td>" +
                "<td><input type='text' name='username' /></td>" +
                "</tr>" +
                "<tr>" +
                "<td>Password:</td>" +
                "<td><input type='password' name='password' /></td>" +
                "</tr>" +
                "<tr>" +
                "<th colspan='2'><input type='Submit' value='Submit'>"+
                "</tr>" +
                "</table>"+
                "</FORM></BODY></HTML>");
  }
  public void click(){
      int i=0;
      for (i=0;i<1000;i++){
      }

非常感谢!

首先,永远不要使用servlet生成这样的静态html。从来没有。

修复后,您需要了解web服务器是如何工作的:servlet或JSP生成发送到浏览器的html块。浏览器将呈现它(显示在屏幕上)并查找特定的说明。<form>基本上是说:让用户填写表单中的任何字段,然后调用action=属性所指示的页面/服务,这样所有表单字段都作为变量返回。

你可能需要学习一些关于web编程的知识,Java web技术的一个很好的免费资源是Java EE教程。您将看到JSP技术正逐渐被JSF所取代(这就是为什么我指向教程的第5版),但我绝对建议您从JSP开始。

你太离谱了…

属性METHOD是针对GET(调用的方法是servlet的doGet())或POST请求(调用的方法是servlet的doPost()),而不是针对任何特定的servlet方法。

你误解了<form>标签。

你需要指定一个URL来最终执行你的方法。
HTML method属性指定HTTP请求谓词,可以是GETPOST

最新更新