我在将 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 是表单所在的文件:
注意:遗憾的是,stackoverflow 上其他类似问题中提供的解决方案不适用于我的情况。
最佳答案
您需要将输入类型按钮替换为提交按钮。
<input type="submit" value="Submit"/>
关于java - 如何从 HTML 表单调用 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31409945/