gpt4 book ai didi

java - 使用java在同一浏览器中打开新选项卡

转载 作者:行者123 更新时间:2023-12-01 15:12:51 25 4
gpt4 key购买 nike

基本上,我在开发项目时,在打开新窗口时遇到了问题。我不想使用 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();
}
}

问题就在这里。该类用于打开默认浏览器,但不打开当前运行的浏览器。如果用户使用非默认浏览器登录,则将打开默认浏览器。如果是这种情况,由于 session 问题,新选项卡将因 session 丢失而无法进行身份验证。

现在,我想找到一种方法,既可以在同一浏览器中打开新选项卡,也可以将 session 对象从一个浏览器传递到另一个浏览器。有什么好主意吗?非常感谢。

最佳答案

没有直接的方法可以在同一浏览器中打开新选项卡。我们可以通过Httprequest找到当前的浏览器。

String userAgent = request.getHeader("user-agent");
if (userAgent.indexOf("MSIE") > -1) {
out.println("Your browser is Microsoft Internet Explorer<br/>");
}

http://www.codemiles.com/servlets-jsp/how-can-we-get-browser-information-in-jsp-t1286.html

根据此选择,我们可以将新浏览器作为新进程启动

Open Browser window from Java program

关于java - 使用java在同一浏览器中打开新选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12088054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com