使用单个servlet调用多个方法

时间:2012-02-29 13:30:06

标签: java jsp java-ee servlets hidden-field

我是JavaEE的新手,并且有一个关于具有多种方法的servlet的查询。

当我点击" Submit"我想知道如何在servlet上调用特定方法。 JSP中的按钮。?

有人建议使用HTML hidden fields,但我不知道如何在Jsp中实现它们。

4 个答案:

答案 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>