如题.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下载完了才进行?
<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下载完了才进行?
--------------------------------------------
那在这种情况下,这个session不再是线程安全的了,怎么改造session,让他线程安全?