gpt4 book ai didi

java - session 是否存在

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:10:31 25 4
gpt4 key购买 nike

我正在尝试在 Google App Engine 上编写我的第一个应用程序,我试图维护一个 session ,我在提交时创建了一个登录页面,它调用了一个 servlet,servlet 使用以下代码验证用户并创建一个新 session 。

void createSession(String Username) {
getThreadLocalRequest().getSession(true).setAttribute("Username", Username);
}

调用 servlet 后的登录页面重定向到某个页面,即 abc.jsp,我的 abc.jsp 页面包含

<body><%
try {
if (request.getSession(false) == null) {

} else {
%>
Welcome to
<%=session.getAttribute("Username")%>
<%
if (session.getAttribute("Username").equals("")) {
%>
<a href="login.jsp"><b>Login </b></a>
<%
} else {
%>
<a href="logout.jsp"><b>Logout</b></a>
<%
}
}
} catch (Exception e) {

}
%></body>

它工作正常,但是当我访问 abc.jsp 而没有 创建 session 时,它会在此 if (session.getAttribute("Username ").equals("")) 行,我不知道为什么请帮助我。我认为它不会检测 session 是否存在。但我读了很多像this这样的话题它给了我这个解决方案,我不知道我做错了什么。

最佳答案

据我所知

session.getAttribute("xyz")

如果属性不存在则返回 null...所以你的 NullPointerException 发生是因为你试图在 null 上调用 equals

我建议在验证其内容之前检查您的属性本身:

if (session.getAttribute("Username") == null || session.getAttribute("Username").equals(""))

关于java - session 是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11925973/

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