【问题标题】:Multiple method calling using single servlet [duplicate]使用单个 servlet 调用多个方法 [重复]
【发布时间】:2012-03-18 23:51:08
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案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>
    

    【讨论】:

      【解决方案2】:

      JSP 中的隐藏字段与 HTML 中的相同:

      <input type="hidden" name="name" value="value">
      

      然后在你的servlet中你可以做

      if (request.getParameter("name").equals("value")) { /* do something */ }
      

      【讨论】:

        【解决方案3】:

        你可以给提交按钮一个特定的名字。

        <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.
        }
        

        【讨论】:

          【解决方案4】:

          我不认为有 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>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-06-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-10-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多