2

我做了以下

getJspContext().setAttribute("authUser", user, PageContext.SESSION_SCOPE);` 

在我的 LoginServlet 和以下

User currentUser = (User) getJspContext().getAttribute("authUser", PageContext.APPLICATION_SCOPE);

在另一个 servlet 中。但是currentUser = null,只有当我更改APPLICATION_SCOPESESSION_SCOPE它开始工作时。

所以,问题是,为什么应用程序范围看不到我在会话范围内设置的变量,因为在我看来,当我在会话范围内创建变量时,它会自动在应用程序范围内变得可见?

4

1 回答 1

0

您仅在指定范围内搜索属性,请参阅java doc

返回与指定范围内的名称关联的对象,如果未找到,则返回 null。

要在所有范围内查找,请改用findAttribute("authUser")

按顺序搜索页面、请求、会话(如果有效)和应用程序范围中的命名属性,并返回关联的值或 null。

于 2020-05-26T10:03:51.253 回答