我是JavaEE的新手,并且有一个关于具有多种方法的servlet的查询。
当我点击" Submit
"我想知道如何在servlet上调用特定方法。 JSP中的按钮。?
有人建议使用HTML hidden fields
,但我不知道如何在Jsp中实现它们。
答案 0 :(得分:4)
您只需为提交按钮指定一个特定名称即可。
<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.
}
答案 1 :(得分:2)
JSP中的隐藏字段与HTML中的相同:
<input type="hidden" name="name" value="value">
然后在你的servlet中你可以做到
if (request.getParameter("name").equals("value")) { /* do something */ }
答案 2 :(得分:1)
取决于您要调用的方法。假设在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>
答案 3 :(得分:0)
我不认为有3个按钮是最好的解决方案,基于所要求的逻辑和参数方法,
我相信这可以是一个准确的解决方案 -
根据传递的参数,我们可以通过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>