use*_*160 12 html forms servlets
我创建了一个Web应用程序项目.它包含一个servlet类和一个HTML表单.如何从HTML表单中调用servlet类?
Bal*_*usC 26
只需创建一个扩展的类,HttpServlet并使用@WebServlet某种URL模式对其进行注释.
@WebServlet("/login")
public class LoginServlet extends HttpServlet {}
Run Code Online (Sandbox Code Playgroud)
或者当你仍然使用Servlet 2.5或更早版本时(注释是自Servlet 3.0以来的新版本),然后将servlet注册为<servlet>,web.xml并通过它将其映射到某个URL模式<servlet-mapping>.
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>com.example.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
然后,只需让HTML链接或表单操作指向与url-patternservlet 匹配的URL即可.
<a href="${pageContext.request.contextPath}/login">Login</a>
Run Code Online (Sandbox Code Playgroud)
<form action="${pageContext.request.contextPath}/login" method="post">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
使用提交按钮时,请确保使用type="submit"和不使用type="button".有关该${pageContext.request.contextPath}部分的说明,请参阅此相关问题和答案:如何在HTML表单操作中使用servlet URL模式,而不会出现HTTP 404错误.
链接和表单method="get"将调用doGet()servlet的方法.您通常使用此方法预处理"在页面加载时"的请求.
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// ...
}
Run Code Online (Sandbox Code Playgroud)
带有的表单method="post"将调用doPost()servlet的方法.您通常使用此方法使用用户提交的表单数据对请求进行后处理(收集请求参数,转换并验证它们,更新模型,调用业务操作并最终呈现响应).
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// ...
}
Run Code Online (Sandbox Code Playgroud)
要了解有关servlet的更多信息并找到更具体的示例,请访问我们的Servlets维基页面.值得注意的是,您也可以使用JSP文件而不是纯HTML文件.JSP允许您在生成HTML输出时通过EL表达式与后端进行交互,并使用JSTL等标记库来控制流.另请参阅我们的JSP wiki页面.
| 归档时间: |
|
| 查看次数: |
84207 次 |
| 最近记录: |