介绍
这篇文章主要介绍Servlet如何获取AJAX POST请求中参数以表单数据和请求负载形式传输,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
本文实例讲述了Servlet获取AJAX POST请求中参数以表单数据和请求负载形式传输的方法。分享给大家供大家参考,具体如下:
HTTP请求中,如果是得到请求,那么表单参数以名称=value& name1=value1的形式附到url的后面,如果是帖子请求,那么表单参数是在请求体中,也是以名称=value& name1=value1的形式在请求体中。通过chrome的开发者工具可以看到如下(这里是可读的形式,不是真正的HTTP请求协议的请求格式):
得到请求:
RequestURL: http://127.0.0.1:8080/测试/test.do ?名字=mikan&地址=街 Request 方法: Status 代码:200,好吧 Request 头 接受:text/html, application/xhtml + xml应用程序/xml; q=0.9,图像/webp */*; q=0.8 接受编码:gzip,缩小,sdch 接收语言:应用,zh型;q=0.8, en; q=0.6 AlexaToolbar-ALX_NS_PH: AlexaToolbar/alxg - 3.2 连接:维生 饼干:JSESSIONID=74 ac93f9f572980b6fc10474cd8edd8d 主持人:127.0.0.1:8080 推荐人:http://127.0.0.1:8080/测试/index . jsp 用户代理:Mozilla/5.0, (Windows NT 6.1) AppleWebKit/537.36, (KHTML, like 壁虎),Chrome/33.0.1750.149 Safari 537.36/Query String 参数 名称:职业生涯 街道地址: Response 头 内容长度:2 日期:太阳,,11,May 2014年,10:42:38 格林尼治时间 服务器:Apache-Coyote/1.1
文章请求:
RequestURL: http://127.0.0.1:8080/测试/test.do Request 方法:职位 Status 代码:200,好吧 Request 头 接受:text/html, application/xhtml + xml应用程序/xml; q=0.9,图像/webp */*; q=0.8 接受编码:gzip,缩小,sdch 接收语言:应用,zh型;q=0.8, en; q=0.6 AlexaToolbar-ALX_NS_PH: AlexaToolbar/alxg - 3.2 cache - control:信息=0 连接:维生 内容长度:25 内容类型:应用程序/x-www-form-urlencoded 饼干:JSESSIONID=74 ac93f9f572980b6fc10474cd8edd8d 主持人:127.0.0.1:8080 来源:http://127.0.0.1:8080 推荐人:http://127.0.0.1:8080/测试/index . jsp 用户代理:Mozilla/5.0, (Windows NT 6.1) AppleWebKit/537.36, (KHTML, like 壁虎),Chrome/33.0.1750.149 Safari 537.36/Form 数据 名称:职业生涯 街道地址: Response 头 内容长度:2 日期:太阳,,11,May 2014年,11:05:33 格林尼治时间 服务器:Apache-Coyote/1.1
这里要注意帖子请求的内容类型为应用程序/x-www-form-urlencoded,参数是在请求体中,即上面请求中数据的形式。
在servlet中,可以通过<代码> request.getParameter(名字)代码>的形式来获取表单参数。
而如果使用原生AJAX post请求的话:
function getXMLHttpRequest (), { ,,,,var xhr; ,,,,如果(window.ActiveXObject), { ,,,,,,,,,xhr=, new ActiveXObject (“Microsoft.XMLHTTP"); ,,,,}else if (window.XMLHttpRequest), { ,,,,,,,,,xhr=, new XMLHttpRequest (); ,,,,}else { ,,,,,,,,,xhr=,空; ,,,,} ,,,,return xhr; } function 保存(),{ ,,,,var xhr =, getXMLHttpRequest (); ,,,,xhr.open (“post",“http://127.0.0.1:8080/测试/test.do"); ,,,,var data =,“name=mikan&地址=街…“;; ,,,,xhr.send(数据); ,,,,onreadystatechange=,()函数,{ ,,,,,,,,,如果(xhr.readyState ==, 4,,,, xhr.status ==, 200), { ,,,,,,,,,,,,,警报(“返回:“+,xhr.responseText); ,,,,,,,,,} ,,,,}; }
通过chrome的开发者工具看到请求头如下:
RequestURL: http://127.0.0.1:8080/测试/test.do Request 方法:职位 Status 代码:200,好吧 Request 头 接受:*/* 接受编码:gzip,缩小,sdch 接收语言:应用,zh型;q=0.8, en; q=0.6 AlexaToolbar-ALX_NS_PH: AlexaToolbar/alxg - 3.2 连接:维生 内容长度:28 内容类型:文本/平原;charset=utf - 8 饼干:JSESSIONID=C40C7823648E952E7C6F7D2E687A0A89 主持人:127.0.0.1:8080 来源:http://127.0.0.1:8080 推荐人:http://127.0.0.1:8080/测试/index . jsp 用户代理:Mozilla/5.0, (Windows NT 6.1) AppleWebKit/537.36, (KHTML, like 壁虎),Chrome/33.0.1750.149 Safari 537.36/Request 有效载荷 名称=mikan&地址=街 Response 头 内容长度:2 日期:太阳,,11,May 2014年,11:49:23 格林尼治时间 null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null nullServlet如何获取AJAX POST请求中参数以表单数据和请求负载形式传输