AJAX中XMLHttpRequest的简单应用

(本文例子参考了Ajax修炼之道中的例子,只为说明问题,如引用,请注明程序出处)

从客户端建立一个XMLHttpRequest对象,然后用这个对象请求一个URL。本文使用的URL是”/MyTest/message“ ,如下是整个页面的代码。功能很简单,在页面上有一个按钮,单击按钮后可以从服务器获取一个信息(URL,即本文的/MyTest/message),然后可以从对象xhr.responseText获得这个值(注意:这里不同的浏览器有不同的做法。如:IE中xhr的属性可以是responseTEXT也可以是responseText。但在Firefox中则只能使用后者)。另外如下列代码可知,在不同的浏览器中,创建XMLHttpRequest对象的方法也有所不同。程序中只给出了主流的浏览器IE和Firefox中创建的情况,其他的浏览器没有提供,可能会出现问题。
用户页面:
<
html >
< head >
< title > Your title here </ title >
< meta http - equiv = " Content-Type "  content = " text/html; charset=iso-8859-1 " >
< meta name  =   " GENERATOR "  Content  =   " ScrypTik V1.13 " >
< script type  =   " text/javascript "  language  =   " Javascript " >
<!--  Hide from older browsers;
var  xhr ;
function  modify() {
  
try{
    xhr 
= new ActiveXObject("Msxm12.XMLHTTP");
  }
catch(E){
    
try{
      xhr 
= new ActiveXObject("Microsoft.XMLHTTP");
    }
catch(e){
      xhr 
= false ;
    }

  }

  
if(!xhr && typeof(XMLHttpRequest)!='undefined'){
    xhr 
= new XMLHttpRequest();
    alert(
"Firefox");
  }


  xhr.open(
"GET" , "/MyTest/message");
  xhr.onreadystatechange
=function(){
    
if(xhr.readyState!=4)return ;
    document.getElementById(
"message").innerHTML =xhr.responseText;
  }

  xhr.send(
null);
}

//  end hide -->
</ script >
</ head >
< body >
<!--  Insert HTML here  -->
< div id = " message " ></ div >
< button onclick = " modify() " > Click Here </ button >
</ body >
</ html >

服务器处理:
使用Servlet技术,如下是Servlet代码:


import  javax.servlet. * ;
import  javax.servlet.http. * ;
import  java.io. * ;
import  java.util. * ;

public   class  message  extends  HttpServlet  {
    
private static final String CONTENT_TYPE = "text/html; charset=GBK";

    
//Initialize global variables
    public void init() throws ServletException {
    }


    
//Process the HTTP Get request
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws
            ServletException, IOException 
{
        response.setContentType(CONTENT_TYPE);
        PrintWriter out 
= response.getWriter();
        out.println(
"<html>");
        out.println(
"<head><title>message</title></head>");
        out.println(
"<body bgcolor="#ffffff">");
        out.println(
"<p>The servlet has received a GET. This is the reply.</p>");
        out.println(
"</body>");
        out.println(
"</html>");
        out.close();
    }


    
//Clean up resources
    public void destroy() {
    }

}

请读者注意路径问题,我使用的Servlet是放在了虚拟路径的ROOT目录(如:http;//localhost;8080/MyTest/message)。如果您创建的Servlet不在ROOT下,那么自行更改xhr.open()方法中的路径。
如执行正确,那么在按钮的上边会出现“
The servlet has received a GET. This is the reply. ”字符串。

我刚刚接触AJAX,很多地方不明白。不当之处,请各位高手指正。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值