向Servlet提交登录信息

submitting login information to Servlet

我又一次被我的代码困住了。 我正在尝试编写一个简单的登录。 带有登录名的网站由 servlet 生成,一旦插入登录信息,就应该将其发回给它。 这工作正常,如果我直接在 Eclipse 中执行它,但如果尝试在浏览器中访问该程序,绝对没有任何反应。我单击“登录”按钮,但根本没有发生任何事情。我想,从网站到 Servlet 的中途某处缺少 link,但我不知道在哪里。

servlet 称为 "Main.java" 并在 tomcat 服务器上执行 这是生成登录名的 doGet() 中的代码:

String s="<h1>Welcome</h1><p><form action=\"Main\" method=\"post\"></p><p>User: <input type=\"text\" name=\"user\"><br></p><p>Password: <input type=\"password\" name=\"pass\"><br></p><p><input type=\"submit\" value=\"Login\"</form></p>";

这是 doPost() 的代码,应在其中获取输入:

    PrintWriter writer= response.getWriter();
    String user=request.getParameter("user");
    String pass=request.getParameter("pass");
    System.out.println(user);
    System.out.println(pass);
    String dbuser="asdf";
    String dbpass="asd";
    if (user.equals(dbuser) && pass.equals(dbpass)){
        writer.println("<html><head></head><body>Logged in! <br>" + user + "<br>" + pass);
    } else{
        writer.println("<html><head></head><body>Wrong Login! <br>" + user + "<br>" + pass);

您的 html 在登录输入中缺少右括号。 应该是:

String s="<h1>Welcome</h1><p><form action=\"Main\" method=\"post\"></p>   <p>User: <input type=\"text\" name=\"user\"><br></p><p>Password: <input type=\"password\" name=\"pass\"><br></p><p><input type=\"submit\" value=\"Login\"></form></p>";