奇怪的session问题,为什么有时session的值取不到???

hefei0603 2006-07-24 10:04:08
我作了个单据管理系统,在登录成功时把session设定好,可有时session的值却取不到。有时又是正常的。老是要弹几次你未登录后才能完全正常工作
我用的resin3.0,语句分别是:
<% session.setAttribute("right","true"); %>
我判断时用的是:
<%
String rit="";
if(session.getAttribute("right")!=null)
rit=(String)session.getAttribute("right");
if(!rit.equals("true"))//判断是否已经登录
{
%>
<script language="javascript">
alert("你尚未登录系统!请先进行登录。")
location.href='index.jsp'
</script>
<%
}
%>
我以前用session.putValue(),session.getValue()也同样有这个问题。
session.putValue(),session.setAttribute()又有什么区别呢?
...全文
509 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hefei0603 2006-07-26
  • 打赏
  • 举报
回复
请大家帮忙想下哈,我自己也在查相关资料。
three3638 2006-07-25
  • 打赏
  • 举报
回复
你加一个输出看看如果取不到需要的值时session是什么值
if(session.getAttribute("right")!=null){
system.out.println("#########"+session.getAttribute("right")+"########")
rit=(String)session.getAttribute("right");
system.out.println("*********"+rit+"*******");
}
看看输出就知道是怎么回事了
可能是之前用过了session的"right"
也可能是session的"right"为空串

有时候可能要写成这样:
if((session.getAttribute("right")!=null)||(((String)session.getAttribute("right")).length()==0))
hefei0603 2006-07-25
  • 打赏
  • 举报
回复
....我前面有个'!'符号的啊,表示的是不等于"true"才执行,逻辑上没出错滴。
to kevinliuu(@。@) 谢谢你的回答!小弟分少只能给你10哈,对不住了!
session.putValue(),session.setAttribute()又有什么区别呢?已经被回答。请大家帮忙解决登录问题,在此先谢啦!
hefei0603 2006-07-25
  • 打赏
  • 举报
回复
TO kongxiangli(笑看红尘) ( ) 信誉:115
----------------------------
我只生成过一次session。照理说有问题的话,应该每次都登录不成功才对啊!
hefei0603 2006-07-25
  • 打赏
  • 举报
回复
问题是登录后有时session里还是没值,或者开始有值,过一会就没值了。
凋零的老树 2006-07-25
  • 打赏
  • 举报
回复
生成Session时出的问题
wangweibilly 2006-07-25
  • 打赏
  • 举报
回复
什么意思? 这个方法不能解决 判断登陆吗?

你用户登陆 验证密码后 即:

request.getSession(true);
session.putValue("right","true");

你有request.getSession(true); 吗?
hefei0603 2006-07-25
  • 打赏
  • 举报
回复
TO wangweibilly(慕容) ( ) 信誉:100
---------------------------------
这方法也解决不了问题。我有时读出session就是空的。。。。。。
hefei0603 2006-07-25
  • 打赏
  • 举报
回复
我输出试过啦,有时的确是空的,这是什么原因呢???
wangweibilly 2006-07-25
  • 打赏
  • 举报
回复
请这样简单判断:
if ((String)session.getValue("right")==null) {
%>
<script language="javascript">
alert("你尚未登录系统!请先进行登录。")
location.href='index.jsp'
</script>
<%}

用户无登陆就没有这个值


}
hefei0603 2006-07-25
  • 打赏
  • 举报
回复
可能是之前用过了session的"right"
--------
??难道只能用一次?
不是放在里面可以随便用几次吗?
kevinliuu 2006-07-24
  • 打赏
  • 举报
回复
session.putValue(),session.getValue()是j2eesdk中的Deprecated方法,也就是过时的,不提倡使用的方法,已经被session.setAttribute()和session.getAttribute()取代。

whysdhr 2006-07-24
  • 打赏
  • 举报
回复
你自己在好好看一看程序
if(!rit.equals("true"))//判断是否已经登录
{
%>
<script language="javascript">
alert("你尚未登录系统!请先进行登录。")
location.href='index.jsp'
</script>
<%
如果rit的值是true,表示用户已经登录,是不是?
如果是的话,执行js,在js中你的alert是输出用户未登录的提示信息,然后
在执行 location.href = 'index.jsp'.
你的alert提示信息写错了!!!!!!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧