访问数据库时Tomcat出现的怪错误

yangd101 2003-10-16 06:08:19
我的程序中多个页面都用到了多级联动下拉框(三级以上),而且数据量都比较大。
通常,当我打开一个包含联动下拉框的页面时要等1分钟左右,数据才能读取完,可是,如果我在这个页面没有显示完全,也就是数据没有读取完时,再打开其他包含联动下拉框的页面时,Tomcat就会出错,所有的数据库操作都出问题,好像不能进行任何数据操作一样。
请教各位高手!
...全文
69 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaray 2003-10-17
  • 打赏
  • 举报
回复
尽量做到数据显示和数据处理分离
yangd101 2003-10-16
  • 打赏
  • 举报
回复
大家给点意见
yangd101 2003-10-16
  • 打赏
  • 举报
回复
<script>
var arrSel=["region","station","equip_type","equip","protection_mode","protection_functions"];//arrSel定义了要修改的下拉框和xml数据的节点名称
</script>
<xml id=xmldata>
<xmldata>
<%
Vector allRegion = new Vector();
try{
regionAdmin regionadmin = new regionAdmin();
allRegion = regionadmin.allRegion();
}catch( Exception e ){
e.printStackTrace();
}
for ( int i = 0; i < allRegion.size(); i ++ ){
region regionInfo = ( region )allRegion.elementAt( i );
String regionName = regionInfo.getRegionName();
%>
<region value = "<%= new String( regionInfo.getRegionName().getBytes( "gb2312" ), "ISO8859_1" )%>">
<%
String regionCode = regionInfo.getRegionCode();
stationAdmin stationadmin = new stationAdmin();
Vector allStation = new Vector();
allStation = stationadmin.allStation( regionCode );
for ( int j = 0; j < allStation.size(); j ++ ){
station stationInfo = ( station )allStation.elementAt( j );
String stationName = stationInfo.getStationName();
%>
<station value = "<%= new String( stationInfo.getStationName().getBytes( "gb2312" ), "ISO8859_1" )%>">
<%
equip1Admin equip1admin = new equip1Admin();
Vector allEquipTypeName = new Vector();
allEquipTypeName = equip1admin.allEquipTypeName( stationInfo.getStationName() );
for ( int k = 0; k < allEquipTypeName.size(); k ++ ){
String equipTypeName = ( String )allEquipTypeName.elementAt( k );
//equipTypeAdmin equiptypeadmin = new equipTypeAdmin();
//String equipTypeName = equiptypeadmin.codeToName( equipTypeCode );
%>
<equip_type value = "<%=new String( equipTypeName.getBytes( "gb2312" ), "ISO8859_1" )%>">
<%
equipTypeAdmin equiptypeadmin = new equipTypeAdmin();
String equipTypeCode = equiptypeadmin.nameToCode( equipTypeName );
Vector allEquip1 = new Vector();
allEquip1 = equip1admin.allEquip1( equipTypeCode, stationInfo.getStationCode() );
for ( int l = 0; l < allEquip1.size(); l ++ ){
String equipName = ( String )allEquip1.elementAt( l );
%>
<equip value = "<%= new String( equipName.getBytes( "gb2312" ), "ISO8859_1" )%>">
<%
String equipCode = equip1admin.nameToCode( regionName, stationName, equipName, equipTypeName );
protectionAdmin protectionadmin = new protectionAdmin();
Vector allProtectionMode = new Vector();
allProtectionMode = protectionadmin.allProtectionMode( equipCode );
for ( int m = 0; m < allProtectionMode.size(); m ++ ){
String protectionMode = ( String )allProtectionMode.elementAt( m );
%>
<protection_mode value = "<%=new String( protectionMode.getBytes( "gb2312" ), "ISO8859_1" )%>">
<%
Vector allProtectionFunction = new Vector();
allProtectionFunction = protectionadmin.allProtectionFunction( equipCode, protectionMode );
for ( int n = 0; n < allProtectionFunction.size(); n ++ ){
String protectionFunction = ( String )allProtectionFunction.elementAt( n );
//protectionFunctionAdmin protectionfunctionadmin = new protectionFunctionAdmin();
//String protection = protectionfunctionadmin.codeToFunction( protectionFunction );
%>
<protection_functions value = "<%= new String( protectionFunction.getBytes( "gb2312" ), "ISO8859_1" )%>"/>
<%
}
%>
</protection_mode>
<%
}
%>
</equip>
<%
}
%>
</equip_type>
<%
}
%>
</station>
<%
}
%>
</region>
<%
}
%>
</xmldata>
</xml>

<script>
function qswhXml(num){
/******* by qiushuiwuhen(2002-5-17) ********/
var i,j,arrTemp=[];
for(i=0;i<num;i++)arrTemp[i]=document.all(arrSel[i]).options[document.all(arrSel[i]).selectedIndex].text
if(num==arrSel.length){//这里处理最后的数据。
document.all("result").value="选中了("+arrTemp+")";return;
}
with(document.all(arrSel[num])){
length=0
var obj=document.all.xmldata.XMLDocument.childNodes[0];
for(i=0;i<num;i++)obj=obj.selectSingleNode(arrSel[i]+'[@value="'+arrTemp[i]+'"]');
for(i=0;i<obj.childNodes.length;i++)options[length++].text=obj.childNodes[i].getAttribute("value");
onchange=new Function("qswhXml("+(num+1)+")");
onchange();
}
}
qswhXml(0);
</script>
这是我的程序
9731boy 2003-10-16
  • 打赏
  • 举报
回复

采用XML来存储数据,一次下载到客户端,联动放到客户端做。

:) 同意 .呵.但要做好随时更新
yangd101 2003-10-16
  • 打赏
  • 举报
回复
但是数据量比较大
yangd101 2003-10-16
  • 打赏
  • 举报
回复
我就是这样做的呀
北极猩猩 2003-10-16
  • 打赏
  • 举报
回复
楼上的正解。
楼上的ID也是正解
CoolAbu 2003-10-16
  • 打赏
  • 举报
回复
采用XML来存储数据,一次下载到客户端,联动放到客户端做。
yangd101 2003-10-16
  • 打赏
  • 举报
回复
怎么个修改法,不能去掉联动下拉框吧
love_tu 2003-10-16
  • 打赏
  • 举报
回复
修改程序结构

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧