【问题标题】:How to call servlet doPost method from javascript function? [duplicate]如何从 javascript 函数调用 servlet doPost 方法? [复制]
【发布时间】:2016-01-08 10:27:25
【问题描述】:

我正在尝试从 javascript 调用 serlvet。代码如下:

document.location.href="service1servlet";

它完美地将调用委托给 servlet,但错误如下:

HTTP Status 405 - HTTP method GET is not supported by this URL

我猜它在 servlet 中寻找 doGet 方法。如何让它在该 servlet 中调用 doPost 方法? Servlet doPost 方法如下:

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("THIS IS IN SERVICE!SERVLET AND CAN CHANGE DATABASE");   
}

【问题讨论】:

    标签: javascript servlets


    【解决方案1】:

    您可以使用 Ajax 或使用 jQuery 来实现。这是调用 servlet 的 jQuery 代码,该 servlet 映射为 /yourServlet 的 url 模式。

    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script>
        $.post('yourServlet', function(data) {
            alert(data);
        });
    </script>
    

    我会建议你通过这个

    【讨论】:

      【解决方案2】:

      您的 servlet 是否应该只支持 POST 方法?如果没有,我建议你坚持使用 GET 方法。

      无论如何,您始终可以在 doGet 方法中调用 doPost。

      定义一个doGet方法,例如ff。示例:

      public void doGet(HttpServletRequest request, HttpServletResponse response) 
          throws ServletException, IOException {
          doPost(request, response);
      }
      

      或者如果你真的需要只支持 POST 方法,那么你提到的 Javascript 函数将不起作用。 POST 请求可以通过表单提交来完成。

      【讨论】:

        【解决方案3】:

        使用 document.location.href 无法发送 POST 请求。

        similar Question

        【讨论】:

          猜你喜欢
          • 2013-05-26
          • 1970-01-01
          • 2012-06-12
          • 1970-01-01
          • 2011-08-18
          • 1970-01-01
          • 1970-01-01
          • 2015-08-24
          • 2012-02-27
          相关资源
          最近更新 更多