如果不清楚,请不要犹豫,编辑我的问题。
目前我遇到一种情况当我的server
发送任何response
时,我需要在JSP
更改bean class
时反映该消息。
我的bean类将是,
public class Information {
public LinkedList<String> information = null ;
public LinkedList<String> getInformation() {
return information;
}
public void setInformation(LinkedList<String> information) {
this.information = information;
System.out.println("List is : "+this.information);
}
}
我的Thread
将在运行时影响bean类,当它从server
Class Producer extends Thread{
LinkedList<String>() list = new LinkedList<String>();
Information info = new Information();
public void run() {
if(ConnectionProtocol.protocol != null){
try {
response = ConnectionProtocol.protocol.receive();
if(response != null){
System.out.println("Listener Response : \n"+response+"\n");
list.add("EventLinkEventLinkConnected event received..");
info.setInformation(list);
}
}
}
}
}
当我的bean类受到影响或修改时,我需要在JSP中显示信息。
此外,我知道ajax并且每隔5秒就使用这种情况我正在访问bean。如果bean中没有消息,我将变为null。并且每件事都运行良好。
我的ajax将是,
function pingAction(){
$.ajax(
{
type: "post",
url: "PingAction",
async: true,
data : "userId="+encodeURIComponent(userId)+"&secureKey="+encodeURIComponent(secureKey)+"&sid="+Math.random() ,
cache:false,
contentType: "application/x-www-form-urlencoded; charset=utf-8",
scriptCharset: "utf-8" ,
dataType: "html",
error: function (xhr, ajaxOptions, thrownError) {
//alert("status :"+xhr.status+"\nthrownError : "+thrownError+"\nresponseText : "+xhr.responseText);
xhr.abort();
},
success: function( responseData , status){
//alert("PingAction Response Data : "+ responseData +"\nStatus : "+status);
if(responseData != "null" && responseData.length != 0 && responseData != null){
//Process to view the response in the JSP
}
} ,
complete:function(){
timer = setTimeout(pingAction, 5000);
}
}
);
}
但是当我的服务器没有发送任何要添加到列表中的消息时,会出现空响应。因为我每5秒调用PingAction()
函数。
肯定赞赏好的答案。