session错误使用的问题(二)

      最近跟session较上了,前一篇帖子内容少,但很多人在项目中都出现了提到了第二种情况,来自于真实情景。http://www.iteye.com/topic/1117443
现在在写一个关于session在实际开发中的问题

情景如下:在代码发现需要取用户数据,这部分登录数据放到session里面,但是代码的逻辑却出现问题,

在代码中

HttpSession session = getRequest().getSession(false);
RbacUser user = (RbacUser) session.getAttribute(Constants.User.LOGIN_USER);

if(user!=null){
//取出user的id
}
//使用到对id进行一些列操作



代码有什么问题?
1.sessin不一定存在,使用前没有进行判断,自己测试时候容易忽略,作为登录用户来测试,一切完好。
2.根据判断session里面有信息取出id,但是如果没有user这个对象呢?这个时候已经出错了,为什么这个逻辑不处理?然后你定义一个全局页面,返回到要处理这个全局页


这个是常见问题,如果逻辑完整,当然没有问题,只是点逻辑上不是很好罢了!不是想探讨的
    早期如果规划好路径,进行相应路径调用这个方法时候,已经aop拦截保证了相关权限用户才能进行调用,那么为什么要写这些逻辑对代码进行污染?进行编码的程序员能很爽的使用session,也知道这个user对象必定存在,不需要进行那么判断,不需要在里面决定同一返回哪些页面,这个代码逻辑也清晰,一些冗余的代码不是也抽离出来了吗?

猜你喜欢

转载自blognojava.iteye.com/blog/1242001