Applet need call out.flush()
解决方案 »
- 怎么能立刻进行内存回收?
- swing 和javabean的目的,请教
- 使用poi对word进行操作的问题
- 几个正则表达式的简单问题
- 有些问题可以说的详细点么
- 求救一个Applet问题,请高手指点~
- 如何把查询的数据表信息显示到JTable中?欢迎您的指教!!!
- 用jdbc for sqlserver 2000(Microsoft的)调用存储过程为何返回不了记录集
- 大家好,google今天已经能用了,还是原来的网址www.google.com
- java数据转换的问题
- 在java中如何打开一个文件?
- applet连接数据库,写了一个policy文件,用appletviewer可以browse,但是如何在ie和nc中带那个policy文件?请各位帮忙一下...
to GJA106:
Servlet本身是多线程的,故Servlet程序未显示实现Seriabalb.
Servlet收到客户端Applet发来的请求后,就通过数据库连接池
查询相应数据,由于是查询操作,我感觉不会造成表锁定。然后,
Servlet将数据放入输出流,Applet从输出流中得到输入流.在这过程中,哪一步需要控制数据不被多线程读取啊.而且,客户方几十台机器,并发
请求很常见.
Applet构造的数据输入流没有得到响应
没有得到响应的输入流显然造成
线程的阻塞。说得不对,请参考。
2: 确定没有用到Servlet成员变量。
问题产生是多个客户同时请求包含Applet的页面
Applet向Servlet请求数据。
同时,存在这种情况,即含Applet的页面还没有显示出来时
客户又点击了其它链接,周而复反,控制台上就显示出
Servlet线程锁定的信息。
注:单机测试,不会造成线程锁定
十几个客户同时反复点击,时间一长,故障就产生!
try{
URL reqURL=new URL(getDocumentBase(),"/BuildInfo");
URLConnection conn=reqURL.openConnection();
InputStream in=conn.getInputStream();//响应未得到,新请求又发生!
DataInputStream din=new DataInputStream(in);
canvas.getBuildList().loadBuilds(din);
din.close();
in.close();
}catch(Exception exp){
exp.printStackTrace();
}
try{
URL reqURL=new URL(getDocumentBase(),"/BuildInfo");
URLConnection conn=reqURL.openConnection();
conn.getOutputStream().flush();//试试
InputStream in=conn.getInputStream();//响应未得到,新请求又发生!
DataInputStream din=new DataInputStream(in);
canvas.getBuildList().loadBuilds(din);
din.close();
in.close();
}catch(Exception exp){
exp.printStackTrace();
}
这个应该在Servlet构造输出流时执行的吧。
关注。