直接跟在超连接后提交参数,当参数较长(具体多少我也忘了,大概几百个字),就会提交错误。
在页面上加入这一句:
oBao.setRequestHeader("Content-Type","gb2312");如果你要提交的参数内容较长,则要用如下的方法:
test.html<html>
<head>
...
<script>
function getDoc(typetext,pid,des){
  var xmlDoc = document.getElementById('xmltitle');
  var root;
  var strXml;
  strXml = '<myclub>';
  //type
  strXml = strXml + '<type>';
  strXml = strXml + typetext;
  strXml = strXml + '</type>';  //pictureID
  strXml = strXml + '<pictureID>';
  strXml = strXml + pid;
  strXml = strXml + '</pictureID>';  //description
  strXml = strXml + '<description>';
  strXml = strXml + des;
  strXml = strXml + '</description>';
  strXml = strXml + '</myclub>';
  xmlDoc.innerHTML = strXml;  return xmlDoc;
}
//调用gosubmit方法提交参数
function gosubmit(){
  var xmlDoc = getDoc('digital',pictureID,newDescription);
    if (xmlhttp) {
        var xmlDoc = getDoc('aaa','bbb','ccc');
        xmlhttp.open("POST",  "modifytitleservlet",true);
        xmlhttp.setRequestHeader("Content-Type","text/xml")
        xmlhttp.setRequestHeader("Content-Type","gb2312")
        xmlhttp.send(xmlDoc.innerHTML);
        }
}
</script>
</head><body>
...
  <div style="display:none">
    <xml id="xmltitle" name="xmlData" style="visibility:hidden;"></xml>
  </div>
</div>
</body>
</html>
这样在客户端,不管是IE,还是firefox都可以,这也是我最近才弄好的。
这样在提交到服务器servlet里面的就是xml
用下面的方法就能得到document对象:
            InputStream in = request.getInputStream();
            DocumentBuilderFactory objDBF = DocumentBuilderFactory.
                                            newInstance();
            DocumentBuilder objDB = objDBF.newDocumentBuilder();
            Document objDocument = objDB.parse(in);
然后就可以解析xml中的数据,这样也不会有中文乱码问题。