gpt4 book ai didi

javascript - 如何将参数从ajax发送到servlet

转载 作者:行者123 更新时间:2023-11-30 12:36:28 24 4
gpt4 key购买 nike

我正在尝试使用 servlet 和 ajax/javascript 添加 2 个数字。我收到 java.lang.NumberFormatException: 并且值为空。我能知道如何将参数从 ajax 传递到 servlet 吗?

SumWithAjaxServlet.java

public class SumWithAjaxServlet extends HttpServlet  {
protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{
PrintWriter out = response.getWriter();

System.out.println("n1 : "+request.getParameter("n1"));
System.out.println("n2 : "+request.getParameter("n2"));

int num1 = Integer.parseInt(request.getParameter("n1"));
int num2 = Integer.parseInt(request.getParameter("n2"));
out.println(num1+num2+"");
}
}

index.jsp

<script type="text/javascript">
function calc()
{
var xmlHttp = new XMLHttpRequest();
var value1 = document.getElementById("n1").value;
var value2 = document.getElementById("n2").value;

xmlHttp.open("POST", "SumWithAjaxServlet", true);
xmlHttp.send(value1 + "," + value2);

var result = document.getElementById("result");
result.innerHTML = xmlHttp.responseText;
}
</script>
<body>
<form id='calcForm'>
<table border="3">
<tr>
<td>Enter 1st number :</td>
<td><input type="text" name="n1" id="n1"></td>
</tr>
<tr>
<td>Enter 2nd number :</td>
<td><input type="text" name="n2" id="n2"></td>
</tr>
<tr>
<td>Result :</td>
<td><input type="text" value="" id="result"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="button" id="calculate" value="calculate"
onclick="calc()" /></td>
</tr>
</table>
</form>
</body>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app>

<servlet>
<servlet-name>SumWithAjaxServlet</servlet-name>
<servlet-class>SumWithAjaxServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>SumWithAjaxServlet</servlet-name>
<url-pattern>/SumWithAjaxServlet</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

</web-app>

最佳答案

您正在使用非标准的自定义编码发送您的数据,但尝试将其解析为就好像它是使用标准形式的 url 编码进行编码一样。

例如,假设您的值为 333555:您正在发送字符串 333,555。您需要发送字符串 n1=333&n2=555

关于javascript - 如何将参数从ajax发送到servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25934559/

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