我正在尝试将包含“命令”的字符串发送到我的Servlet控制器的doGet方法和request.getParameter()。
我在该主题上观看的教程同时使用了嵌入在链接中的form标记和param标记,以将参数发送回doGet。
链接和参数:
<c:url var="deleteLink" value="StudentControllerServlet">
<c:param name="command" value="DELETE" />
<c:param name="studentId" value="${tempStudent.id}" />
</c:url>
形式:
<form action="StudentControllerServlet" method="GET">
<input type="hidden" name="command" value="UPDATE">
<input type="hidden" name="studentId" value="${THE_STUDENT.id}">
<table>
<tbody>
<tr>
<td><label>First Name:</label></td>
<td><input type="text" name="firstName" value="${THE_STUDENT.firstName}"/></td>
</tr>
<tr>
<td><label>Last Name:</label></td>
<td><input type="text" name="lastName" value="${THE_STUDENT.lastName}" /></td>
</tr>
<tr>
<td><label>Email:</label></td>
<td><input type="text" name="email" value="${THE_STUDENT.email}" /></td>
</tr>
<tr>
<td><label></label></td>
<td><input type="submit" value="Save" class="save" /></td>
</tr>
</tbody>
</table>
</form>
这两种方法都不适合我,我想单击将我带到另一个页面并同时将参数发送回doGet的按钮。
是否有很好的方法来执行此操作,否则我做错了吗?
是的,您可以这样做。在通过GET请求触发的servlet中,首先处理浏览器发送到servlet的参数。然后,您可以使用sendRedirect()
将浏览器发送到另一个URL。 See an example here。