大家好,本人在开发首页的地图导航显示数据时,遇到一些关于
Exception Processing ErrorPage[errorCode=404, location=/building.jsp]
ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error的问题。
本功能大概是:在鼠标移动到某个城市时,将显示一个从数据库读取的城市生产总额和项目数等信息。
本人用了AJAX进行异步交互读取数据来显示。虽然能成功显示,但是在ECLIPSE的窗口总是会出现错误如上所示,经上网查后发现是可能自己在客户端做测试时用鼠标移动到下个城市太快的缘故吧,导致客户端不停刷新,造成无用的进程,虽然数据能正常显示,但我想请教各位高手有什么好的解决方法使后台不会有Connection reset by peer: socket write error提示出现.
以下是我写的一些代码:
index.jsp:
//执行请求发送
function send_request(url,strsearchoose) {
if (url != " ") {
// 获取一个XMLHttpRequest实例
var req = newXMLHttpRequest();
//alert(req);
// 设置用来 从请求对象 接收回调通知 的句柄函数
var handlerFunction = processRequest(req,strsearchoose);
req.onreadystatechange = handlerFunction;
// 打开一个联接到XXXservlet的HTTP POST联接
// 第三个参数表示请求是异步的
req.open( "GET ", url, true);
// 指示请求体包含form数据
req.setRequestHeader( "Content-Type ", "application/x-www-form-urlencoded ");
req.send(null);
} else {
alert( " ");
}
}
/*初始化对象并发出XMLHttpRequest请求*/
function newXMLHttpRequest() {
var xmlreq = false;
if (window.XMLHttpRequest) {
// 在非Microsoft浏览器中创建XMLHttpRequest对象
xmlreq = new XMLHttpRequest();
} else {
if (window.ActiveXObject) {
//通过MS ActiveX创建XMLHttpRequest
try {
// 尝试按新版InternetExplorer方法创建
xmlreq = new ActiveXObject( "Msxml2.XMLHTTP ");
}
catch (e1) {
// 创建请求的ActiveX对象失败
try {
// 尝试按老版InternetExplorer方法创建
xmlreq = new ActiveXObject( "Microsoft.XMLHTTP ");
}
catch (e2) {
// 不能通过ActiveX创建XMLHttpRequest
}
}
}
}
return xmlreq;
}
function processRequest(req,strsearchoose) {
return function () {
// 如果请求的状态是'完成'
if (req.readyState == 4) {
// 检查是否成功接收了服务器响应
if (req.status == 200) {
// 将载有响应信息的XML传递到处理函数
//responseXmlHandler(req.responseXML);
//将传回的信息当字符串使用
if(strsearchoose== "0 "){
document.getElementById( "report ").innerHTML = req.responseText;
//alert(req);
}else{
document.getElementById( "projectlist ").innerHTML = req.responseText;
}
} else {
// 有HTTP问题发生
alert( " " + req.status);
return false;
}
}
};
}