基本上,我在开发项目时打开新窗口时遇到了问题。我不想使用 JavaScript 的 window.open()。
我正在使用 jsf+spring+hibernate 框架。当用户登录系统(使用spring security)时,会显示两个页面,一个在原始选项卡上,另一个必须是弹出窗口。我找到了一种打开新浏览器的方法。这里是:
public class LaunchBlackBoard {
public static void runBrowser(String webSite) {
try {
Desktop desktop = Desktop.getDesktop();
if (Desktop.isDesktopSupported()
&& desktop.isSupported(Desktop.Action.BROWSE)) {
URI uri = new URI(webSite);
desktop.browse(uri);
}
} catch (IOException ex) {
ex.printStackTrace();
} catch (URISyntaxException ex) {
ex.printStackTrace();
}
}
这是问题所在。此类用于打开默认浏览器,但不用于打开当前运行的浏览器。如果用户使用非默认浏览器登录,则默认浏览器将打开。如果是这种情况,由于会话问题,新选项卡将由于缺少会话而无法通过身份验证。
现在,我想找到一种方法,既可以在同一个浏览器中打开一个新选项卡,也可以将会话对象从一个浏览器传递到另一个浏览器。有什么好主意吗?多谢。