铁背苍狼的专栏

刘林栋ID:lldwolf
37026次访问,排名2806好友15人,关注者24
桃花坞里桃花庵,桃花庵下桃花仙。

桃花仙人种桃树,又摘桃花换酒钱。

酒醒只在花前坐,酒醉还来花下眠。

半醉半醒日复日,花落花开年复年。

但愿老死花酒间,不愿鞠躬车马前。

车尘马足显者事,酒盏花枝隐士缘。

若将显者比隐士,一在平地一在天。

若将花酒比车马,彼何碌碌我何闲。

别人笑我太疯癫,我笑他人看不穿。

不见五陵豪杰墓,无花无酒锄作田。
lldwolf的文章
原创 48 篇
翻译 0 篇
转载 1 篇
评论 106 篇
最近评论
flyever581549:谢谢你的分享..
学到了很多..
以后继续关注你的博客..
并期待更多你的分享..
999:很经典啊, 麻烦也给我发个源码, 谢谢908184856@qq.com
javalfans:不错的文章,受益匪浅...谢谢啦!
fengjikun:请教一下,ajax_callback.jsp页面在onload的时候即使在主页面<iframe>里主页面也有刷新吧?
代码可以发给我一份吗?
fengjikun@gmail.com
谢谢!
Sunny:请教一下,在ajax_callback.jsp中
<div id="div1">${uname}</div>一句中
${uname}是什么用法啊?JSP中有这样的语法吗?
文章分类
收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 J2EE下使用AJAX(一) 最原始的AJAX收藏

    新一篇:  J2EE下使用AJAX(二) Prototype封装

    本方法不借助于任何的框架及开源项目,体现AJAX在J2EE中的实现如下功能,由页面向服务器发出请求,返回一个字符串,客户端页面显示该字符串。

    1.1 Servlet

    响应客户端请求的Servlet类为一普通的Servlet,关键在于使用了ServletOutputStream控制输出流,该输出即可则客户端获取。代码如下所示:

    package lld.test.ajax;

    import java.io.IOException;

    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class SimpleAjaxServlet extends HttpServlet
    {
        
    private static final long serialVersionUID = -668635463669389981L;

        @Override
        
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                
    throws ServletException, IOException
        
    {
            
    this.doPost(req, resp);
        }


        @Override
        
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                
    throws ServletException, IOException
        
    {
            String uname 
    = req.getParameter("uname");
            ServletOutputStream os 
    = resp.getOutputStream();
            os.print(
    "Hello, " + uname);
            System.out.println(
    "Hello, AJAX!");
        }

    }

    如果客户端传入参数 uname=London,则该Servlet将字符串“Hello, London”输出至客户端。

    1.2 JSP

    在JSP中使用如下HTML代码发送请求

    <input type="button" value="Simple" onclick="simple_ajax()" />

    关键在于JavaScript代码的写法,如下所示:

    var bXmlHttpSupport = (typeof XMLHttpRequest != "undefined" || window.ActiveXObject);

    function GetXMLHttpRequest() 
    {
        
    var oRequest;
        
    if(window.ActiveXObject)
        
    {
            
    var arrSignatures = ["MSXML2.XMLHTTP.6.0""MSXML2.XMLHTTP.5.0""MSXML2.XMLHTTP.4.0",
                                 
    "MSXML2.XMLHTTP.3.0""MSXML2.XMLHTTP",
                                 
    "Microsoft.XMLHTTP"];
                             
            
    for (var i=0; i < arrSignatures.length; i++{
                
    try {        
                    oRequest 
    = new ActiveXObject(arrSignatures[i]);            
                    
    return oRequest;        
                }
     catch (oError) /*ignore*/ }
            }
              
        }

        
    else if(window.XMLHttpRequest)
        
    {
            oRequest 
    = new XMLHttpRequest();
            return oRequest;
        }


        
    throw new Error("MSXML is not installed on your system.");               
    }


    function simple_ajax()
    {
        
    if(bXmlHttpSupport)
        
    {
            
    var frm = document.form1;
            
    var sUrl = "SimpleAjax.do?uname=London";
            
    var oRequest = GetXMLHttpRequest();
            oRequest.onreadystatechange 
    = function() 
            
    {
                
    if(oRequest.readyState == 4
                
    {
                    alert(oRequest.responseText);
                }

            }
    ;
            oRequest.open(
    'POST', sUrl);
            oRequest.send(
    null);
        }

    }



    其中的XMLHttpRequest用于获取发送异步XML请求的ActiveX对象,可作为一个通用函数在项目中使用。

    在simple_ajax函数中,关键在于定义XMLHttpRequest.onReadyStateChange事件,指定请求返回后的动作,在此我只是简单地显示从服务器返回的结果。

    该程序在IE和Firefox下均测试通过, 如果谁想要源程序, 可给我发邮件

    发表于 @ 2008年04月22日 15:42:00|评论(loading...)|编辑

    旧一篇: 关于serialVersionUID

    评论

    #liangwenzheng 发表于2008-04-23 21:40:35  IP: 123.127.220.*
    function XMLHttpRequest()
    写的很有特色,学习了:)

    但似乎少了firefox的arrSignatures
    2008-04-25 16:09:29作者回复
    已添加了对firefox的支持, 前面写代码时疏忽了
    #WHHAOYA 发表于2008-04-24 22:59:30  IP: 59.46.241.*
    谢谢,马上要学了,看了这个觉得不错
    #linyanbo 发表于2008-04-28 15:27:44  IP: 172.16.9.*
    我的邮箱是 linyanbo-3354@163.com
    可以发些源代码吗? 谢谢
    #sniperfox 发表于2008-05-05 17:20:13  IP: 121.229.89.*
    sniperfoxlu@gmail.com
    学习中
    #Maojm 发表于2008-05-09 23:37:36  IP: 218.72.84.*
    我的邮箱:maojimin8888@163.com
    求源代码,谢谢!
    #lxp2002 发表于2008-05-13 04:21:46  IP: 193.63.131.*
    求源代码,谢谢!
    jaffson2002@yahoo.com.cn
    #computerclass 发表于2008-05-17 22:04:13  IP: 222.85.74.*
    求源代码,谢谢!
    computerclass@163.com
    #Crystal_Park 发表于2008-05-20 15:24:01  IP: 58.245.147.*
    thanks! hyanghp@hotmail.com
    #hailang43 发表于2008-05-20 15:27:44  IP: 219.149.12.*
    请分享一份源码 hailang43@qq.com
    谢谢啦
    #Sunksubmarine 发表于2008-05-24 15:01:35  IP: 211.94.89.*
    求源代码,先谢了!
    lingxiaoverygood@sina.com
    #wangdeiwangdei 发表于2008-05-24 22:08:19  IP: 60.176.183.*
    哈哈,我的两个网站:[url=http://www.bt285.cn]BT网站[/url]与[url=http://www.tondou.cn]最新电影网[/url]都是用这个写的
    #tohmin 发表于2008-05-25 22:53:51  IP: 124.82.93.*
    很经典啊, 能不能发一份源码, 谢谢
    tongminfei@hotmail.com
    #goto 发表于2008-05-26 09:03:29  IP: 221.219.242.*
    麻烦也给我发个源码, gotostandford@yahoo.com.cn, 谢谢.
    #999 发表于2008-06-16 13:21:02  IP: 222.209.51.*
    很经典啊, 麻烦也给我发个源码, 谢谢908184856@qq.com
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © lldwolf