XMLHttpRequest的get跟post方式提交和doGet(), doPost()的关系

XMLHttpRequest的get和post方式提交和doGet(), doPost()的关系
代码:
function submitAction()
{
    var xmlHttpRequest= createXMLHttpRequest();
    xmlHttp.open("GET",url,true);//指定GET方式提交
    xmlHttp.onreadystatechange = handleStateChange;//回调函数
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlHttp.send(params);//传入参数
}

当open方法的第一个参数是GET或者POST的时候,都是调对应的doGet()和doPost()方法吗?答案是调用什么方法不是由open()方法的第一个参数完全决定的,还与send()方法里面的参数有关。

一、当open()方法里指定的是GET,并且
    1、send()方法的参数是""或者null,调用了Servlet中的doGet()方法
    2、send()方法的参数是地址重写的方式,或者就是一个字符串,都调用doPost()方法
二、当open()方法里指定的是POST,服务器均会调用doPost()方法。