[英]Ajax Post request to Servlet?
嗨,我一直在尝试将值从ajax传递到servlet,已经使用了JQUERY jquery-1.3.2和query-1.3.2.min。我能够成功发送数据,但是如果我在servlet中打印该值得到null
这是我的js事件
<script type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript" src="js/myjquery.js"></script>
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" >
function AddNext(event)
{
MQA.EventManager.addListener(map, 'click', AddNext);
var lata = event.ll.getLatitude();
var lnga = event.ll.getLongitude();
var latlon=lata+"|"+lnga;
addpasslatlon(latlon);
MQA.EventManager.clearAllListeners( map);
exit();
};
myjquery.js-
function addpasslatlon(latlon)
{
var value=latlon;
$.ajax({
url:'insertPos',
type:'POST',
data:value,
success : function(data){
alert('success'+data);
}
});
}
我的servlet类-
public class InsertPos extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String a =request.getParameter("value");
System.out.println(a);
}
}
web.xml-
<url-pattern>/insertPos</url-pattern>
O / P-空
您必须发送数据对象:
data:{value : value},
//----^^^^^-------------this is the key which you refered in your servlet.
在后端,你应该用钥匙把它value
,你正在做的事情。
您应该运行一个简单的测试,以查看可用的参数,可以使用getParameterMap()返回一个Map对象:
System.out.println(request.getParameterMap());
这将为您打印出映射的键,值对的所有可用参数,因此接下来,当您知道映射中的所有键以及它们映射到的值时,可以像尝试过的那样调用它,但是这次您将确信该值已经作为参数的一部分存在:
request.getParameter("<insertKeyHere>");
Jai所做的是,他向您展示了如何将JSON对象传递给Servlet。
数据:{value:value},
这对于servlet很有用,因为它可以轻松地将其解析为参数映射。
这样做的问题是您不想自己声明整个JSON字符串...对于一个或两个值很好,但对于较大的对象绝对不是。
您可能想使用的是将所有对象都转换为JSON的javascript函数,您可以将其添加到ajax调用中,并且可以正常工作:
data: JSON.stringify(value),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.