Mua*_*ani 7 java session google-app-engine jsp
我正在尝试编写我的第一个应用程序Google App Engine,我正在尝试维护会话,我在提交时创建了一个登录页面,它调用了一个servlet,servlet验证用户并使用以下代码创建一个新会话.
void createSession(String Username) {
getThreadLocalRequest().getSession(true).setAttribute("Username", Username);
}
Run Code Online (Sandbox Code Playgroud)
调用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>
Run Code Online (Sandbox Code Playgroud)
它工作正常,但是当我在abc.jsp 没有创建会话的情况下访问时,它会在此if (session.getAttribute("Username").equals(""))行中抛出异常,我不知道为什么请帮助我.我认为它不会检测会话是否存在.但我看了这么多线程像这样它给了我这个解决方案,我不知道我在做什么错.
Pr0*_*m3r 14
就目前我所记得的
session.getAttribute("xyz")
Run Code Online (Sandbox Code Playgroud)
null如果属性不存在则返回...因此您的NullPointerException因为尝试调用equals而发生null.
我建议在验证其内容之前检查您的属性:
if (session.getAttribute("Username") == null || session.getAttribute("Username").equals(""))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33144 次 |
| 最近记录: |