gpt4 book ai didi

java - 在 JSP 中链接不同的页面并保留当前的 ​​Spring Security session

转载 作者:太空宇宙 更新时间:2023-11-04 12:16:39 25 4
gpt4 key购买 nike

当用户使用 Spring Security 登录到我的 web 应用程序时,他会被重定向到某个 JSP 网页,并且他的用户上下文处于 Activity 状态(登录 session )。现在,在此页面上,单击链接或按钮后,我想在同一网页上向他显示来自另一个 URL 的已解析 JSON 数据,但是当我使用 JSON 数据访问此页面时:

reader = new BufferedReader(new InputStreamReader(url.openStream()));

在不使用他的 session 的情况下访问这个带有 JSON 的页面,并且无法访问 JSON 数据。

总而言之,我的问题是:如何在同一个当前用户(Spring Security) session 中使用JSP访问另一个网页?

最佳答案

当您从浏览器访问 JSP 或 Servlet 时,您的浏览器和 Web 应用程序之间会存在一个 session 。

但是,您在这里从 Java 代码打开 URLConnection 所做的事情(无论此代码是在 JSP 中还是在 Servlet 中,在运行时都是相同的)是从服务器本身请求资源到同一服务器中的资源。就是这样,您的 Java 代码正在打开一个到服务器的新 session 。由于您请求的 JSON 取决于 session (这就是您所说的),因此回复会有所不同。

如果您在 session 管理中有一种管理器应用程序(例如 Tomcat 的 psi-probe),您可以看到应用程序上下文中至少有两个 Activity session ,一个用于浏览器 session ,另一个用于与服务器 JSON 资源的 Java 连接。

如果您确实需要从浏览器调用 jsp 时使用的同一 session 中获取该 json,则可以使用 javascript 从中访问该 JSON 资源。还有其他替代方案,例如直接调用通过 java import 返回 JSON 资源的 Java 类,而不是将其作为 URL 调用。

关于java - 在 JSP 中链接不同的页面并保留当前的 ​​Spring Security session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39326123/

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