java - 如何从 HTML 表单调用 servlet

标签 java html forms servlets

我在将 html 表单连接到 Web 应用程序中的 Servlet 时遇到问题。这是 html 文件:

<form method="post" class="/Login" action="/Login">
		<fieldset class="textbox">
						
                      <label class="textbox_field">
                        <span>Username or Email</span>
                        <input id="username" name="username" value="" type="text" autocomplete="on" placeholder="Username">
                      </label>

                      <label class="textbox_field">
                        <span>Password</span>
                        <input id="password" name="password" value="" type="password" placeholder="Password">
                      </label>

                      <button class="submit_button" type="submit">Sign-In</button>
                </fieldset>
</form>

这是名为 Login 的 servlet:

 @WebServlet("/Login")
    public class Login extends HttpServlet {
        private static final long serialVersionUID = 1L;

    public Login() {
        super();
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("in doPost...");
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        String username = request.getParameter("username");
        String pass = request.getParameter("password");

        if(Validate.checkUser(username, pass))
        {
            RequestDispatcher rs = request.getRequestDispatcher("Welcome");
            rs.forward(request, response);
        }
        else
        {
           out.println("Username or Password incorrect");
           RequestDispatcher rs = request.getRequestDispatcher("index.html");
           rs.include(request, response);
        }
    }

}

我没有编辑 web.xml 文件,因为使用“Servlet 3.0,可以通过类上的 @WebServlet 注释来配置 servlet,而不需要 web.xml”。如果我误解了这个说法,显然纠正我。

最后,这是来自 Project Explorer 的片段,请注意 home.jsp 是表单所在的文件:

enter image description here

注意:遗憾的是,stackoverflow 上其他类似问题中提供的解决方案不适用于我的情况。

最佳答案

您需要将输入类型按钮替换为提交按钮。

<input type="submit" value="Submit"/>

关于java - 如何从 HTML 表单调用 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31409945/

相关文章:

java - 如何降低在两个列表中搜索算法的复杂度?

javascript - 如何滚动 .list-group 将导航栏留在顶部

python - 表单中缺少 cleaned_data (django)

javascript - 在 Google Apps 脚本中访问多个参数值

ruby-on-rails - 如何使用 Rails 4 以一种形式添加多个多对多字段?

java jbutton文本不适合不同的环境

java - 将运算符保存在数组中,错误

java - Spring Cloud 配置服务器 - 设置克隆 git repo 的文件夹目录

html - CSS/HTML - Chrome 中的字间距不起作用

php - 如何在 html 中呈现多层次的 mysql 查询(codeIgniter)