补充一下,我想判断一个session中是否存在变量IsLogin用来判断用户是否已经登录,如果用户没有登录,当用户做其他操作如访问受限制的内容时,就不让看。就是说不一定要求用户必须先登录,但是如果用户没有登录,访问受限制的内容就不让看,但其他不受限制的内容是可以看的。求指点啊..........,做毕业设计用的......我的QQ460310624
我想判断一个session中是否存在变量IsLogin用来判断用户是否已经登录,请问用你的方法如何实现呢????
追答哦,session中的缓存信息就就直接session.getAttribute("IsLogin")了。如果为null要么就是未登陆,要么就是已失效或者退出了。具体情况具体对待。^ ^
追问不行啊,因为我之前没有用setgetAttribute(),所以如果用session.getAttribute("IsLogin")就会报错,java.lang.NullPointerException
追答没有用setgetAttribute(),getAttribute("IsLogin")时也不该有空指针;是不是session是空的?
追问session不是一直都存在的吗?
怎么会是空的啊
先测试下。在session.getAttribute("IsLogin")之前打印下session看是不是空。不过看下边交流里看到一点,你是先session.getAttribute("IsLogin"),还是直接session.getAttribute("IsLogin").toStirng?
追问session不为空
追答取值的时候,你是用的哪种:
1、Object obj=session.getAttribute("IsLogin");
2、String obj=session.getAttribute("IsLogin").toStirng();
1的话是不会有异常出现的
2的话建议分开写:
Object obj=session.getAttribute("IsLogin");
String str = null;
if(obj!=null){
str = obj.toString();
}
if obj == null --->如果为null,就是还没有分配内存,自然是不存在了追问
我想判断一个session中是否存在变量IsLogin用来判断用户是否已经登录
追答session.getAttribute("IsLogin");//根据key值获取value值
如果返回为null,那就是不存在了
这种办法很危险的,很容易给人攻击的
这个也不行啊,因为我之前没有用setgetAttribute(),所以如果用session.getAttribute("IsLogin")就会报错,java.lang.NullPointerException
追答先判断下你的session为不为null,
找出nullPointerException得root cause,再考虑解决方案
session不是一直都存在的吗?
怎么会是null呢??我现在只在一个jsp里敲入了
if(session.getAttribute("username").toString()==null)
{
out.print("not exist");
}else{
out.print("exist");
}
其他什么都没有
问题出在这里估计
session.getAttribute("username").toString
session.getAttribute("username") = null;然后你相当于调用了null.toString();可能导致了问题
你这两个方法不行,我想判断一个session中是否存在变量IsLogin用来判断用户是否已经登录
追答session.getAttribute("变量名");
判断它是否为空就知道是否存在了。
不行啊,java.lang.NullPointerException
追答你获取session对象是怎么获取的?
追问if(session.getAttribute("username").toString()==null)
{
out.print("not exist");
}else{
out.print("exist");
}
或者用NULL==Object 来判断下追问
我想判断一个session中是否存在变量IsLogin用来判断用户是否已经登录,请问用你的方法如何实现呢????
追答你在用户登陆的时候将IsLogin赋值为A,然后要在要判断的时候用
if(NULL!=IsLogin)
{
if("A"==IsLogin)
{
不可以看的内容的代码
}
}else
{
可以看的内容的代码
}
你每个页面都用这个框起来就可以,这是最简单的权限控制代码