gpt4 book ai didi

java - 如何从 JavaScript(AJAX 请求)向 Servlet 发送和捕获参数

转载 作者:行者123 更新时间:2023-12-03 11:45:28 25 4
gpt4 key购买 nike

我创建了 InformationServlet,每当我需要一些详细信息时,我都可以向它发送我想要的内容(使用 AJAX),它会返回信息。

我搜索了如何在 Ajax 上执行此操作并根据: How to send parameter to a servlet using Ajax Call

我使用:url:“InformationServlet?param=numberOfPlayers”

但是在 servlet 上,请求的属性不包含我发送的参数,所以我想我做得不正确:
enter image description here

您可以看到属性大小为零

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

关于java - 如何从 JavaScript(AJAX 请求)向 Servlet 发送和捕获参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26073327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com