Get方法被调用,但是我在表单中给出了POST方法

时间:2019-09-12 10:04:13

标签: javascript java servlets

我正在从JSP调用POST方法,但是默认情况下,在Servlet中调用GET,并且请求中都没有post参数。

我已经检查了所有现有问题,但是当我通过javascript方法提交表单时,没有一个问题能够解决我的问题。

相同的JSP,js和Java代码在我的实时环境中运行良好。

所以我无法理解,是某个版本问题还是什么。尽管如此,如果可以进行任何更改以使其正常工作,我仍将代码放在下面。

我尝试将编码标签放入enctype格式,因为在一种解决方案中,编码有时可能是一个问题,但没有用。

JSP代码:

 //web.xml configuration is done properly
    <form action="FileDownloadServlet" method="POST" id="fDownload">
        <input type="hidden" name="fileId" id="fileId"/>
        <input type="hidden" name="status1" id="status1"/>
        <input type="hidden" name="volume1" id="volume1"/>
        <input type="hidden" name="fileType" id="fileType" value="summaryPDF"/>
        <input type="hidden" name="documentType" id="documentType" value="SO"/>
    </form>

JS代码如下:

//It is fetching the below values from a form on the current page storing values in hidden and it is printing these values in js properly.


    var docID = dwr.util.getValue("docId");
        var status = dwr.util.getValue("status");
        var volume = dwr.util.getValue("volume");
        jq('#fileId').val(docID);
        jq('#status1').val(status);
        jq('#volume1').val(volume);
        document.forms[0].action = "FileDownloadServlet";
        document.forms[0].submit();

Servlet代码:

                         //In form we gave POST as form method but still output is calling doGet
          @Override
            protected void doGet(HttpServletRequest request, HttpServletResponse response)
                    throws ServletException, IOException {
                System.out.println("calling doGet");
                processRequest(request, response);
            }

            @Override
            protected void doPost(HttpServletRequest request, HttpServletResponse response)
                    throws ServletException, IOException {
                     System.out.println("calling doPost");
                processRequest(request, response);
            }

它每次都调用GET方法。

1 个答案:

答案 0 :(得分:0)

Jaromanda X在评论中建议。 我做了以下更改,现在可以正常工作了。

document.forms.formID.action = "FileDownloadServlet";
document.forms.formID.submit();