Servlet如何获取AJAX POST请求中参数以表单数据和请求负载形式传输

  介绍

这篇文章主要介绍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   null

Servlet如何获取AJAX POST请求中参数以表单数据和请求负载形式传输