以下都是平常工作内容的一些总结。
方法一:借用Jquery包
<script type="text/javascript" src="jquery.js"></script> function func(){//在func函数中使用ajax var param = document.getElementById("param").value; $ajax({//ajax的内容 url="servlet/checkUser?username="+param,//所对应的Servlet及所需参数 type = "post", success:function(data, testStatus){ //成功后回调函数,有两个参数:服务器返回数据,返回状态 }, error:function(){//错误处理 } }) }
对应的Servlet函数
public class checkUser extends HttpServlet {
public void doGet (HttpServletRequest req, HttpServletResponse resp)
public void doPost (HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Stirng username = response.getParameter("usernmae");
...
}
方法二:自己写代码,主要就是创建XMLHttpRequest对象(这是Ajax的本质)。
var xmlHttpRequest; function createXMLHttpRequest(){//创建XMLHttpRequest对象 if (window.ActiveXObject){ xmlHttpRequest= new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest){ xmlHttpRequest= new XMLHttpRequest(); } } function loginCheck(){//功能函数 createXMLHttpRequest(); var name = document.getElementById("name").value; var password = document.getElementById("password").value; xmlHttp.open("POST","checkUserName.do?name="+name+"&password="+password,true); //checkUserName.do为struts文件中对应的跳转, xmlHttp.onreadystatechange = handleStateChange;//对服务器返回信息处理 xmlHttp.send(null); } function handleStateChange(){ //等到数据加载完 if(xmlHttp.readyState ==4){ //状态码200表示成功 if(xmlHttp.status == 200){ var returnText = xmlHttp.responseText.toString(); //returnText的值就是由 checkUserName.do对应的Java文件返回的值 ... } } }