在编写一个javaweb应用的时候,我曾经碰到一个非常头疼的问题,就是判断空值的那段代码。因为每个页面要用一个session来防止恶意的注册登录。
所以我要在相关的页面来判断这个session的值,就是这样一个简单的事情,结果却不尽如人意。刚开始,我写的是:
if(request.getSession().getAttribute("login")==null)
但是这样在后来就证明有错误,因为一旦用户登录成功,session就变为true,这时应该允许,所以该有个判断false
的过程,但是这时候就不能用==了,因为java里的string比较不能用==,要调用函数equals,这里又是个小陷阱。于是写成
if(request.getSession().getAttribute("login")==null ||request.getSession().getAttribute("login").equals("false"))
ps:判断空值不能用==“”,这样算是一个空字符,不代表空值。