我正在尝试编写我的第一个应用程序Google App Engine
,我试图维护一个会话,我在提交时创建了一个登录页面,它调用一个servlet
servlet 验证用户并使用以下代码创建一个新会话。
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
不创建会话的情况下访问时,它会在这一行抛出异常if (session.getAttribute("Username").equals(""))
,我不知道为什么要帮助我。我认为它不会检测会话是否存在。但是我已经阅读了很多这样的线程它给了我这个解决方案,我不知道我做错了什么。