日期:2014-05-16  浏览次数:20809 次

ajax如何向servlet传参接收 - Web 开发 / Ajax
刚学了ajax 但是servlet接受不到我的username值
js代码:
<script type="text/javascript">
  var xmlHttpRequest=null;
  function ajaxsubmit(){
  if(window.ActiveXObject){
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

  }
  else if(window.XMLHttpRequest){
  xmlHttp=new XMLHttpRequest();
  }
  if(null!=xmlHttp){
  var username=document.getElementsByName("username")[0].value;//username值不为空,用alert()能打印出来
  var url="ajaxservlet?username="+username;
  xmlHttp.open("GET",url,true);
  xmlHttp.onreadystatechange=ajaxCallback;
  xmlHttp.send(null);
  }
   
  }
  function ajaxCallback(){
  if(xmlHttp.readyState==4){
  if(xmlHttp.status==200){
  var responseText=xmlHttp.responseText;
  document.getElementById("div1").innerHTML=responseText;
  }
  }
  }
  </script>
在servlet中用
String username=request.getParameter("userame");
接收传过来的username值,但是后台始终报空,应该如何传参接收

------解决方案--------------------
var url="ajaxservlet?username="+encodeURIComponent(username);

另外,你的代码写错了

String username=request.getParameter("userame");

应该是
String username=request.getParameter("username");


少了一个n
------解决方案--------------------
设置好编码吧。如果你是中文,用的是get方法,用的是tomcat服务器,可以在server.xml的配置文件中找到connerter的那个元素的配置,加一个URIEncoding="gbk"或utf-8即可。