如题,我现在有两个页面login.jsp,index.jsp。然后我在index页面做了登录状态的判断,如果从login页面进入,是完全没有问题的,这个我也知道是什么原因,但是我现在有一个问题,就不通过login页面进入,直接输入index,这样就开始报session的空指针错误了,不知道各位有没有什么好的办法来帮小弟解决这个问题,原本的代码如下:
<%
if(session.getAttribute("username").toString().equals(""))
{
%>
<script>
alert('尊敬的游客,由于您未登录,所以无法使用该平台,谢谢合作!');location.href('login.jsp');
</script>
<%
}
%>JSPsession
<%
if(session.getAttribute("username").toString().equals(""))
{
%>
<script>
alert('尊敬的游客,由于您未登录,所以无法使用该平台,谢谢合作!');location.href('login.jsp');
</script>
<%
}
%>JSPsession
<%
String user=(String)session.getAttribute("username");
if(user==null)
{
%>
<script>
alert('尊敬的游客,由于您未登录,所以无法使用该平台,谢谢合作!');location.href('login.jsp');
</script>
<%
}
%>
if(session.getAttribute("username"))
NULL==变量和"".equals("变量")
是不会出现空指针的
你可以把NULL和""看成两个对象。调用的它们的==和equals方法
如果把你定义的变量放在前面,就是需要你的变量要被创建,然后才能调用这个对象的==和equals方法。
不然连username指向哪个对象也没告诉系统,如何通过usrname对象调用你后面的equals方法?
Users user=(Users)session.getAttribute("user");
if(user==null)
{
response.sendRedirect("Login.jsp");
return;
}
%>
这位说的有道理,而且在不知道对象状态情况下,以判断 null 为优先。