如题.test1.jsp<%session.setAttribute("name","newThreadTest");%>
<input type="button" value="open window" onclick="window.open('test2.jsp');" >
test2.jsp<%=(String)session.getAttribute("name")%>test2.jsp可以得到"newThreadTest",这表明主窗口与弹出窗口共享一个session,window.open()并没有开新的线程.那如果我的弹出窗口test2.jsp是一个下载页面,也就是写字节流(outputStream.write("xxx"))到网页test2.jsp是一很耗时的操作的同时,我在主窗口test1.jsp上做其他的动作,如提交表单数据到数据库,会不会因为test2.jsp在进行下载而阻塞,一定要等到test2.jsp下载完了才进行?

解决方案 »

  1.   

    当然是一个新的线程,不过是同一个会话你描述的问题怎么当然不可能存在,首先servlet是多线程的,况且两个不同的jsp毫不相干
      

  2.   

    treeroot(旗鲁特) ( ) 信誉:106    Blog 当然是一个新的线程,不过是同一个会话
    --------------------------------------------
    那在这种情况下,这个session不再是线程安全的了,怎么改造session,让他线程安全?