有几种方法可以实现这一点。
可能最简单的方法是使用 JavaScript 来更改表单的操作。
<input type="submit" value="SecondServlet" onclick="form.action='SecondServlet';">
但是当最终用户禁用 JS(移动浏览器、屏幕阅读器等)时,这当然不会起作用。
另一种方法是将第二个按钮放在不同的形式中,这可能是你需要的,也可能不是你需要的,这取决于具体的功能要求,这从问题中根本不清楚。
<form action="FirstServlet" method="Post">
Last Name: <input type="text" name="lastName" size="20">
<br><br>
<input type="submit" value="FirstServlet">
</form>
<form action="SecondServlet" method="Post">
<input type="submit"value="SecondServlet">
</form>
请注意,表单在提交时只会发送包含在同一个表单中的输入数据,而不是在另一个表单中。
另一种方法是创建另一个单一入口点 servlet,该入口点 servlet 进一步委托给正确的 servlet(或者最好是正确的业务操作),具体取决于按下的按钮(该按钮本身可通过其名称作为请求参数使用) :
<form action="MainServlet" method="Post">
Last Name: <input type="text" name="lastName" size="20">
<br><br>
<input type="submit" name="action" value="FirstServlet">
<input type="submit" name="action" value="SecondServlet">
</form>
在MainServlet中包含以下内容
String action = request.getParameter("action");
if ("FirstServlet".equals(action)) {
// Invoke FirstServlet's job here.
} else if ("SecondServlet".equals(action)) {
// Invoke SecondServlet's job here.
}