日期:2014-05-19  浏览次数:20700 次

三个servlet执行init初始化方法,怎么解决先后顺序问题???
servlet执行init初始化方法,怎么避免线程问题???
  就是我有一个jsp页面,是由三个子jsp组成,其中一个java类中,需要在init方法中set一个sessiob,然后再其它两个java文件中去取它,现在的问题是,第一次打开页面时,这三个java文件都是各自加载,有时还未给session保存,其它两个就去取了,导致取空值。。。请问该怎么解决呢??新人求助,勿怪。。谢谢!11

------解决方案--------------------
在访问你最外层这个jsp页面时request.getSession().setAttribute("lock",new Object());
首先加载的Servlet大概如下
Object lock = request.getSession().getAttribute("lock");
synchronized (lock) {
set sessiob
...
lock.notifyAll();
}
后加载的Servlet大概如下
Object lock = request.getSession().getAttribute("lock");
synchronized (lock) {
lock.wait();
get sessionb;
...
}