首页 > 其他分享 >J2EE下使用AJAX(一) 最原始的AJAX (转)

J2EE下使用AJAX(一) 最原始的AJAX (转)

时间:2023-06-08 21:05:37浏览次数:39  
标签:... J2EE AJAX 原始 oRequest var import servlet


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

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


1.1 Servlet

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




J2EE下使用AJAX(一) 最原始的AJAX (转)_客户端

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" οnclick="simple_ajax()" />

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



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

   function
    XMLHttpRequest() 
   ...
   {
    var arrSignatures = ["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 ...{        
            var oRequest = new ActiveXObject(arrSignatures[i]);            
            return oRequest;        
        } catch (oError) ...{ /**//*ignore*/ }
    }          

    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 = new XMLHttpRequest();
        oRequest.onreadystatechange = function() 
        ...{
            if(oRequest.readyState == 4) 
            ...{
                alert(oRequest.responseText);
            }
        };
        oRequest.open('POST', sUrl);
        oRequest.send(null);
    }
}

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


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

标签:...,J2EE,AJAX,原始,oRequest,var,import,servlet
From: https://blog.51cto.com/u_16065168/6443257

相关文章

  • Ajax表单提交数据出现乱码和解决办法
    >>更多精彩技术文章>//要传递的参数  varqueryString="firstName="+firstName+"&lastName="+lastName                         +"&birthday="+birthday;   function  1.//GET方式提交2.doRequestUsingGET(......
  • ubuntu 原始部署 和 宝塔部署 node
      1.选用Linux系统2.node测试的包有expressknex3.Linux安装nodejs环境https://github.com/nodesource/distributions4.Linux系统权限(sudo)npm安装pm25.用pm2启动后端服务示例:pm2startindex.mjs6.注意端口号占用7.防火墙打开对应端口号     ......
  • AJAX+servlet实例入门
    这些时间,瞎子也看得见,AJAX正大踏步的朝我们走来。不管我们是拥护也好,反对也罢,还是视而不见,AJAX像一阵潮流,席转了我们所有的人。关于AJAX的定义也好,大话也好,早有人在网上发表了汗牛充栋的文字,在这里我也不想照本宣科。只想说说我感觉到的一些优点,对于不对,大家也可以和我讨论......
  • 原生AJAX案例浏览器报错:Cross origin requests are only supported for protocol
    报错信息如下:代码如下:<!DOCTYPEhtml><html><body><divid="demo"><h1>XMLHttpRequest对象</h1><buttontype="button"onclick="loadDoc()">更改内容</button></div><script>fu......
  • IO流:原始流、缓冲流的性能分析
              ......
  • SMB 签章可以用于保护 SMB/TCP 协议传输的数据安全性,防止网络中的恶意用户或攻击者篡
    SMB签章可以用于保护SMB/TCP协议传输的数据安全性,防止网络中的恶意用户或攻击者篡改原始数据。要启用SMB签章,可以执行以下批处理脚本:CopyCode@echooffsetlocalrem启用SMB签章echoEnablingSMBsigning...regadd"HKLM\SYSTEM\CurrentControlSet\Services\Lanma......
  • Ajax的步骤与封装 AJAX中的200和4分别是什么意思
    1)、AJAX的步骤:ajax的流程,readyState和status的意思​1、创建XMLHttpRequest​letxhr=newXMLHttpRequest()​2、设置(请求方式,请求路径,请求参数)​xhr.open("get","regSave.php?username=jzm&userpass=123",true)​3、设置回调函数(后端有响应时,调用的回调函数)​......
  • J2EE环境变量的其他使用方式
    [color=red]1.[b]System.getProperty()获取tomcat自定义变量[/b][/color][url]http://zwxiaole.iteye.com/blog/1832053[/url]环境tomcat集群有一个定时器为了防止所有集群的服务器都跑定时而出错选择其中一台服务器修改tomcatbin目录下的windows......
  • SpringMVC 转换ajax的json数据乱码问题
    在springmvc3中,已经集成了Jackson(json处理器)来处理数据输出json格式,spring中封装的类是[color=blue]org.springframework.http.converter.json.MappingJackson2HttpMessageConverter[/color]这个json转换器,如果是[color=red]springmvc3.2[/color]之前的版本,可以使用[color=b......
  • XSLT 介绍与 Google Ajaxslt
    最近研究ajaxslt的心得[url]http://bright895.blog.163.com/blog/static/182699233201142685114192/[/url]XSLT的英文标准名称为eXtensibleStylesheetLanguageTransformation。根据W3C的规范说明书(http://www.w3.org/TR/xslt),[color=red]最早设计XSLT的用意是帮助XML文档(doc......