如何从HTML表单调用servlet类
我创建了一个web应用程序项目。它包含一个servlet类和一个HTML表单。如何从HTML表单中调用servlet类?只需创建一个扩展类,并使用特定URL模式对其进行注释如何从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模式 登
@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>