在jsp中判断session为空

来源:百度知道 编辑:UC知道 时间:2024/05/21 12:36:45
在首页上,如果用户登录了,那么就显示用户管理模块。用户没有登录,就显示用户登录模块。
别人提示说判断session是否为空就可以了,但是怎么判断呢?
是用if(session==null)吗?但是这样判断一直都不对,所以还是请大家帮个忙。
如果大家有其他可用的好办法也请告诉我哦:)谢谢!比价急!

<% String name=(String)session.getAttribute("adminname"); 
   if(name!=null){%>
+显示内容
<%}else{ %>
<%response.sendRedirect("index.jsp"); %>
<%} %>

如果为空,则跳转到index.jsp

在servlet中,session必须通过request.getSession()创建
request.getSession(false)得到

当在jsp中,session是一个隐式对象,访问jsp页面时会自动创建,所以通过session是否为空判断是不行的
解决方法:
1.将jsp中的session禁用,这样jsp就不会自动创建session,你不通过代码创建的话,session就是空的(这个方法有点...)
2.像楼上说的那样,不要通过session是否为空来判断,而是通过session中带的值来做判断(推荐):
登陆成功时,在session中放入特定值:
session.setAttribute("变量名","值");
登陆判断:
取值:String str = (String)session.getAttribute("变量名");
通过取出的值判断是否已经登陆了
注销登陆,移除session中的值:
session.removeAttribute("变量名");

是如果他登录了,你就给他一个特定的session,比如session("ID"),那么,才可以判断。
因为只要他上你的网站了,就算你没给他session,系统也会给他一个session的,所以,那样子去