如何从HTML表单调用servlet类

如何从HTML表单调用servlet类,html,forms,servlets,Html,Forms,Servlets,我创建了一个web应用程序项目。它包含一个servlet类和一个HTML表单。如何从HTML表单中调用servlet类?只需创建一个扩展类,并使用特定URL模式对其进行注释 @WebServlet("/login") public class LoginServlet extends HttpServlet {} 或者,当您仍然使用Servlet 2.5或更旧版本(该注释自Servlet 3.0以来是新的)时,请在web.xml中将该Servlet注册为,并通过将其映射到特定的URL模式 登

我创建了一个web应用程序项目。它包含一个servlet类和一个HTML表单。如何从HTML表单中调用servlet类?

只需创建一个扩展类,并使用特定URL模式对其进行注释

@WebServlet("/login")
public class LoginServlet extends HttpServlet {}
或者,当您仍然使用Servlet 2.5或更旧版本(该注释自Servlet 3.0以来是新的)时,请在
web.xml
中将该Servlet注册为
,并通过
将其映射到特定的URL模式


登录
com.example.LoginServlet
登录
/登录
然后,只需让HTML链接或表单操作指向与servlet的
URL模式
匹配的URL即可



使用提交按钮时,请确保使用的是
type=“submit”
,而不是
type=“button”
。有关
${pageContext.request.contextPath}
部分的说明,请参见以下相关问题和答案:

带有
method=“get”
的链接和表单将调用servlet的
doGet()
方法。通常使用此方法预处理“页面加载”请求

带有
method=“post”
的表单将调用servlet的
doPost()
方法。您通常使用此方法对具有用户提交的表单数据的请求进行后处理(收集请求参数,转换并验证它们,更新模型,调用业务操作,最后呈现响应)


要了解有关servlet的更多信息并找到更多具体示例,请访问。应该注意的是,您还可以使用JSP文件而不是普通的HTML文件。JSP允许您在生成HTML输出时通过EL表达式与后端交互,并使用像JSTL这样的标记库来控制流。另请参见。

例如,我创建了类似的login.html

<div class="container">

    <form method = "post" class="form-signin" role="form" action="LoginServlet">
    <h2 class="form-signin-heading">Please sign in</h2>
    <input type="text" class="form-control" name = "username" placeholder="User Name" required autofocus>
    <input type="password" class="form-control" name = "password" placeholder="Password" required>
    <div class="checkbox">
      <label>
        <input type="checkbox" value="remember-me"> Remember me
      </label>
    </div>
    <input type="submit" class="btn btn-lg btn-primary btn-block" value="Sign in">
  </form>

</div> 


请登录
记得我吗


在标记之间,我通过将方法定义为“post”来调用LoginServlet

已引发异常。阅读stacktrace/日志并相应地修复代码。
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // ...
}
<div class="container">

    <form method = "post" class="form-signin" role="form" action="LoginServlet">
    <h2 class="form-signin-heading">Please sign in</h2>
    <input type="text" class="form-control" name = "username" placeholder="User Name" required autofocus>
    <input type="password" class="form-control" name = "password" placeholder="Password" required>
    <div class="checkbox">
      <label>
        <input type="checkbox" value="remember-me"> Remember me
      </label>
    </div>
    <input type="submit" class="btn btn-lg btn-primary btn-block" value="Sign in">
  </form>

</div>