Raj*_*mar 10 jsp servlets java-ee
我有一个Servlet名称EditEvent和一个包含两个表单的JSP.一个用于添加新事件,另一个用于删除事件.
使用两个单独的servlet来处理一个JSP被认为是一种好习惯吗?如果没有,你将如何处理来自一个servlet的两个post请求?即添加事件和删除事件请求.
干杯
Pok*_*uri 13
为了处理同一个servlet的多个请求,你必须签订一个像'ACTION'这样的请求参数的契约.然后在表单中将其添加为隐藏字段,其值为"ADD"和"REMOVE".因此,在doPost()中,您可以检查此参数值,并可以在同一个servlet中调用相应的处理方法.
class YourServlet extends HttpServlet{
public void doPost(HttpReq req, HttpResp resp){
String action = reg.getParameter('ACTION');
if('ADD'.equals(action)){
addEvent();
}
if('REMOVE'.equals(action)){
removeEvent()
} else {
defaultAction();
}
}
}
Run Code Online (Sandbox Code Playgroud)
Bal*_*usC 11
这都是你的选择.这完全取决于当前和未来的功能要求.一个简单的替代方法是if在servlet中引入一个或两个块,在其中检查按下了哪个按钮:
if (request.getParameter("add") != null) {
// Perform add.
}
else if (request.getParameter("remove") != null) {
// Perform remove.
}
Run Code Online (Sandbox Code Playgroud)
假设按钮看起来像这样:
<input type="submit" name="add" value="Add" />
<input type="submit" name="remove" value="Remove" />
Run Code Online (Sandbox Code Playgroud)
一个复杂的替代方案是转向普通的MVC框架,您只需指定特定的操作方法即可.例如,JSF:
<h:commandButton value="Add" action="#{bean.add}" />
<h:commandButton value="Remove" action="#{bean.remove}" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15051 次 |
| 最近记录: |