`

httpServletRequest的异步调用,多个.do请求

 
阅读更多

当一个页面的按钮超链接到另外一个页面时,而这个页面的数据,是通过不同的多个.do请求来填充数据时,要用到异步调用。且用到

var tmpInterval=window.setInterval("getEveryPageInfo()",1000);//定时处理。

 

function getEveryPageInfo(){
 if (最后){
  window.clearInterval(tmpInterval);
  页面处理最后的处理
  return ;
 }

 var request=Request
  sendRequest(request,Url);//异步请求过程。(本人对回调进行了封装)
 }
 }。

 

 

function sendRequest(request,url){
 request.reSend(url,"",callBackInfo);
}
var Request = new function(){
 this.pool = new Array();
 this.getXMLHttp = function (){
    for (var i = 0; i < this.pool.length; i++){
     if (this.pool[i]["obj"].readyState == 0 || this.pool[i]["obj"].readyState == 4){
       return this.pool[i]["obj"];
     }
    }
   this.pool[this.pool.length] = new Array();
   this.pool[this.pool.length - 1]["obj"] = this.createXMLHttp();
   return this.pool[this.pool.length - 1]["obj"];
 }

 this.createXMLHttp = function (){
   if(window.XMLHttpRequest){
     var xmlObj = new XMLHttpRequest();
   }
   else{
     var MSXML = ['Microsoft.XMLHTTP', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
     for(var n = 0; n < MSXML.length; n++){
       try{
        var xmlObj = new ActiveXObject(MSXML[n]);       
        break;
       }catch(e){
       }
     }
    }
 
   return xmlObj;
  }
 this.reSend = function (url,data,callback){
    var objXMLHttp = this.getXMLHttp()
   if(typeof(objXMLHttp) != "object"){
      return ;
    }
    url += (url.indexOf("?") >= 0) ? "&random=" + new Date().getTime() : "?random=" + new Date().getTime();
   if(data == ""){
     objXMLHttp.open('GET' , url, true);
     objXMLHttp.send('');
    }
    else{
     objXMLHttp.open('POST' , url, true);
     objXMLHttp.setRequestHeader("Content-Length",data.length);
     objXMLHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     objXMLHttp.send(data);
    }
   if(typeof(callback) == "function" ){
     objXMLHttp.onreadystatechange = function (){
       if (objXMLHttp.readyState == 4){
          if(objXMLHttp.status == 200 || objXMLHttp.status == 304){
             callback(objXMLHttp);
          }
          else{
             //alert("Error loading page\n"+ objXMLHttp.status +":"+ objXMLHttp.statusText);
          }
          objXMLHttp.abort();
       }
     }
   }
 }
}

function callBackInfo(xmlHTTP){
  var reqXml=xmlHTTP.responseText;

  业务处理。。。

}

执行的过程是:

一般是得到数据,在进行处理。

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    如何HttpServletRequest文件对象并储存

    这可以通过调用`isMultipart()`方法检查请求是否为多部分类型,然后使用`getMultipartRequestHandler()`或`createMultipartRequest()`(根据所使用的Spring版本)来创建`MultipartHttpServletRequest`实例。...

    servlet中文API

    通过session,服务器可以在多个请求之间存储用户的状态信息。 11. **MVC模式和Servlet** - 在Servlet中,Model-View-Controller(MVC)模式可以通过分离业务逻辑(Model)、表示层(View)和控制逻辑(Controller...

    JAVA servelet API

    Servlet是线程安全的,这意味着多个请求可以同时调用同一个Servlet实例。开发者需要注意并发控制,以防止数据竞争。 12. **异步处理** 自Java EE 7开始,Servlet API支持异步处理,允许Servlet在处理请求时释放...

    Servlet入门的例子

    通过调用`HttpServletRequest.startAsync()`开启异步模式,然后在回调的`AsyncContext.complete()`中发送响应。 10. **总结** 通过这个Servlet入门例子,我们了解了Servlet的基本概念、创建、部署和运行过程。继续...

    Servlet参考手册.zip

    8. **异步处理**:从Servlet 3.0开始,Servlet支持异步处理,允许Servlet在处理请求时不阻塞其他请求,提高了性能。 9. **MVC框架**:虽然Servlet本身是一个低级别的API,但许多流行的MVC框架,如Spring MVC,是...

    java三级题库及答案

    2. **请求范围**:选项B正确地描述了request范围内的对象与同一请求中的多个页面相关。 3. **会话范围**:选项C的说法有误,application范围才是针对整个Web应用的。 4. **会话管理**:选项D正确地指出了在session...

    springboot 解决InputStream只能读取一次的问题

    在处理请求时,我们可以先创建一个`RepeatableHttpServletRequest`实例,将其传递给我们的处理器,这样处理器就可以多次调用`getInputStream()`来读取数据,而不会丢失原始输入流。 此外,我们还需要确保正确处理`...

    struts1.2 上传实例总结

    接下来,我们创建一个Action类,例如`UpLoadAction.java`,继承自`Action`,处理用户的上传请求。在`execute`方法中,我们获取到`ActionForm`,然后通过`getTheFile()`方法来访问`FormFile`对象,这个对象包含了上传...

    struts上传组件

    在Struts中,上传功能主要依赖于一个名为“Commons FileUpload”的第三方库,它是Apache Commons项目的一部分,专门用于处理HTTP请求中的多部分/表单数据。 在使用Struts上传组件时,首先需要在Struts配置文件...

    通过Ajax请求动态填充页面数据的实例

    - **Ajax调用**:`moreData()`函数通过Ajax发送POST请求到服务器,传入当前页码信息(例如,通过隐藏字段`&lt;input class="tip" value="1"&gt;`获取)。 - **后台处理**:服务器接收到请求,通常由控制器类(如Java的`@...

    prototype.js简单实现ajax功能示例

    在上述代码中,`Ajax.Request` 是关键,它接收两个参数:一个是请求的 URL,另一个是一个包含多个选项的对象。这些选项包括请求的方法(这里是 'post'),参数(在这里是空字符串),以及在请求成功、完成或失败时要...

    超级有影响力霸气的Java面试题大全文档

    与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...

    java 面试题 总结

    与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...

    Java如何实现支付宝电脑支付基于servlet版本

    【Java实现支付宝电脑支付基于Servlet版本】 在Java中实现支付宝电脑支付功能,主要是通过与支付宝的开放API进行交互,...在实际开发中,还需要考虑异常处理、安全性、用户体验等多个方面,确保支付流程的顺畅和安全。

    ajax如何实现页面局部跳转与结果返回

    这段JavaScript代码使用jQuery库发送一个GET请求到指定的URL(`/smokeplan.do?method=Tibao&idset=`),并在请求成功时显示服务器返回的结果(`result`)。 在服务器端,通常使用某种后端技术(如Java的Struts或...

    SpringMVC结合ajaxfileupload实现文件无刷新上传代码

    在这个例子中,当用户点击“上传”按钮时,会触发一个JavaScript事件,阻止表单的默认提交行为,并使用ajaxFileUpload方法发起异步文件上传请求。后端返回的JSON数据会被解析,并根据结果向用户显示相应的提示信息。...

    java培训课程体系

    - **AJAX技术:** 了解异步请求的基本原理及其在Web开发中的应用。 #### 四、JavaWeb程序设计(3周) ##### 4.1 Java与XML - **XML基础知识:** 学习XML的基本语法及其与JSON的区别。 - **解析XML:** 掌握DOM和...

Global site tag (gtag.js) - Google Analytics