【发布时间】:2012-03-18 23:51:08
【问题描述】:
我是 JavaEE 的新手,并且有一个关于具有多种方法的 servlet 的查询。
我想知道当我在 JSP 中单击“Submit”按钮时如何调用 servlet 上的特定方法。?
有人建议使用HTML hidden fields,但我不知道如何在 Jsp 中实现它们。
【问题讨论】:
标签: java jsp jakarta-ee servlets hidden-field
我是 JavaEE 的新手,并且有一个关于具有多种方法的 servlet 的查询。
我想知道当我在 JSP 中单击“Submit”按钮时如何调用 servlet 上的特定方法。?
有人建议使用HTML hidden fields,但我不知道如何在 Jsp 中实现它们。
【问题讨论】:
标签: java jsp jakarta-ee servlets hidden-field
取决于您要调用的方法。假设在web.xml 中为您的servlet 声明的URL 模式是/myservlet*,
对于doGet,只需使用网址
http://localhost:8080/myservlet?name=value
对于doPost,使用表单。
<form action="/myservlet" method="post">
<input type="text" value="value" name="name" />
</form>
【讨论】:
JSP 中的隐藏字段与 HTML 中的相同:
<input type="hidden" name="name" value="value">
然后在你的servlet中你可以做
if (request.getParameter("name").equals("value")) { /* do something */ }
【讨论】:
你可以给提交按钮一个特定的名字。
<input type="submit" name="action1" value="Invoke action 1" />
<input type="submit" name="action2" value="Invoke action 2" />
<input type="submit" name="action3" value="Invoke action 3" />
按下按钮的名称-值对可以作为请求参数以通常的方式使用。
if (request.getParameter("action1") != null) {
// Invoke action 1.
}
else if (request.getParameter("action2") != null) {
// Invoke action 2.
}
else if (request.getParameter("action3") != null) {
// Invoke action 3.
}
【讨论】:
我不认为有 3 个按钮是最好的解决方案,根据所要求的逻辑和参数方法,
我相信这可能是一个准确的解决方案-
根据传递的参数,我们可以有 2 种方法来通过 javascript 访问不同的操作-
1)从用户那里获取值,在 javascript 中检查它们。
2)从用户那里获取值,在javascript中检查它们,相应地将值分配给隐藏变量,调用servlet并使用这些隐藏值。我已经详细说明了方法1。
<html>
<head>
<script type="text/javascript">
function nawab() {
param = document.getElementById('param1').value;
alert('in nawab');
if (param != "") {
if (param === 'abc') {
alert('abc');
document.forms[0].action = "nawabServlet";
document.forms[0].submit();
}
if (param === 'def') {
alert('def');
document.forms[0].action = "nawabServlet2";
document.forms[0].submit();
}
}
else{
alert('empty');
document.forms[0].action = "nawabServlet";
document.forms[0].submit();
}
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>nawab has come</title>
</head>
<body>
<form>
param1:<input type="text" name="param1" id="param1"></select>
<input type="submit" onclick="nawab()">
</form>
</body>
</html>
【讨论】: