簡體   English   中英

如何將參數從JavaScript(AJAX請求)發送和捕獲到Servlet

[英]How to send and catch parameter from JavaScript (AJAX request) to Servlet

我創建了InformationServlet,每當我需要一些細節時,我都可以使用AJAX將其發送給我想要的東西,它將返回我的信息。

我搜索了如何在Ajax上進行操作,並根據: 如何使用Ajax調用將參數發送到servlet

我用過: url: "InformationServlet?param=numberOfPlayers"

但是在servlet上,請求的屬性不包含我發送的參數,所以我想我做的不正確:
在此處輸入圖片說明

您可以看到屬性大小為零

Servlet的:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            Gson gson = new Gson();
            Engine engine = (Engine)getServletContext().getAttribute("engine");
            String responseJson = "";

            if(request.getAttribute("numberOfPlayers") != null)
            {
                String numberOfPlayers = "";
                numberOfPlayers = gson.toJson(String.valueOf(engine.GetNumOfPlayers()));
                responseJson = numberOfPlayers;
            }

            out.print(responseJson);

        } finally {
            out.close();
        }
    }

JavaScript(AJAX請求):

function getNumberOfPlayersAndPrintSoldiers()
{
      $.ajax({
        url: "InformationServlet?param=numberOfPlayers",
        timeout: 2000,

        error: function() {
            console.log("Failed to send ajax");
        },
        success: function(numberOfPlayers) {
            var r = numberOfPlayers;

        }
    });
}

編輯:

您可能想使用getParameter而不是getAttribute

此外,請注意參數名稱及其值的順序:

request.getParameter("param");

的原因:

request.getParameter("numberOfPlayers");

因為url表單首先包含參數名稱,然后包含參數值。 例如:

myurl.html?param=17

如果需要更多參數,請使用分隔符&符號

myurl.html?firstName=bob&age=5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM