[英]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.