jsp从session中取空值的问题
2017-11-25 23:49
246 查看
网页项目中,在session里设置了一个属性用于记录用户的登录状态,当未登录时为空,登录后为设置好的字符串,然后通过给按钮设置js,点击按钮时,若未登录,弹出提示框,若已登录则跳转相应界面。该按钮和js代码如下:
但是在测试过程中发现,无论是已登录还是未登录状态,都会执行else代码块。通过打断点检查,发现在登录时,session中存储的值为指定的字符串,进入了else代码块;但是在未登录时,session中的参数值为null,却同样进入了else代码块。最终发现,通过session.getAttribute(“...”)获取的参数值并强转为String后,原本不存在的属性(null)变为了'null'字符串,也就是说logined值为‘null’,有可能是两种原因,一可能是session.getAttribute(“...”)获取的Object在jsp中被强转为了String之后变为‘null’字符串,二可能是因为在向js中传递时null被转化为了字符串,需要进一步的验证。
<a onclick="checkLoginFromStartButton('<%=logined%>')" id="download-button" class="btn-large waves-effect waves-light teal lighten-1">Get Started</a>
function checkLoginFromStartButton(logined) { if (logined == null || logined == undefined || logined == '') { Materialize.toast("Please login first !", 2000); } else { window.location.href="/MyProject/pages/Manage.jsp"; } }
但是在测试过程中发现,无论是已登录还是未登录状态,都会执行else代码块。通过打断点检查,发现在登录时,session中存储的值为指定的字符串,进入了else代码块;但是在未登录时,session中的参数值为null,却同样进入了else代码块。最终发现,通过session.getAttribute(“...”)获取的参数值并强转为String后,原本不存在的属性(null)变为了'null'字符串,也就是说logined值为‘null’,有可能是两种原因,一可能是session.getAttribute(“...”)获取的Object在jsp中被强转为了String之后变为‘null’字符串,二可能是因为在向js中传递时null被转化为了字符串,需要进一步的验证。
相关文章推荐
- jsp 重定向session问题
- Spring+SpringMVC+mybatis+jsp,session取值问题!
- GetSession(false)在JSP和Servlet首次访问结果不同的问题
- jsp中session的判断用户是否登陆问题?
- JSP中application session request cookie 生命周期的问题
- 也谈session在JSP和Servlet中不一致问题
- jsp 关于session的问题
- Jsp+Hibernate开发中遇到的问题 java.lang.ClassNotFoundException: org.hibernate.Session的解决
- AJAX进入方法设置Session,需要刷新页面jsp才能获取值的问题
- 解决servet和jsp中的session不能及时更新的问题
- jsp 和session不同步的问题
- 关于今天jsp或servlet取不到session的问题
- 解决jsp获取session域中的值之字符串拼接的问题
- session问题和JSP
- session在JSP和Servlet中不一致问题
- 关于Eclipse中通过run on server来运行JSP文件不支持session问题
- 关于今天jsp或servlet取不到session的问题
- jsp中验证码的实现,以及ajax实现的正确的验证,解决了session不同步的问题。(我这里已测试过,可以直接用)
- JSP中application session request cookie 生命周期的问题
- 注意JSP使用FrameSet的session丢失问题