`
悲剧了
  • 浏览: 140793 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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对象必定存在,不需要进行那么判断,不需要在里面决定同一返回哪些页面,这个代码逻辑也清晰,一些冗余的代码不是也抽离出来了吗?

 

 

分享到:
评论

相关推荐

    完美解决ajax访问遇到Session失效的问题

    现在Ajax在Web项目中应用广泛,几乎可以说无处不在,这就带来另外一个问题:当Ajax请求遇到Session超时,应该怎么办? 显而易见,传统的页面跳转在此已经不适用,因为Ajax请求是XMLHTTPRequest对象发起的而不

    session使用方法

    在PHP开发中对比起Cookie,session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 session 的使用。

    session问题集锦

    对于PHP的session功能,始终找不到合适的答案,尤其是一些错误,还有一些没有错误的结果,最可怕的就是后者,一直为许多的初学者为难。就连有些老手,有时都被搞得莫名其妙。本文,将这些问题,做一个简单的汇总,...

    session共享 memcached-session-manager 1.9.6 jar

    网上下载过N种jar版本,启动tomcat报各种错误;浪费了很多时间;本资源经tomcat7、tomcat8测试,均正常实现负载均衡,session共享功能。

    nginx实现session共享

    兼容Tomcat7 与tomcat8 +memcached做session共享 , 解决了tomcat7与Tomcat8的 java.lang.NoSuchFieldError: attributes 错误。

    oracle Session与lock 解除

    但DDL(alter,drop等)操作会提示ora-00054错误。 有主外键约束时 update / delete ... ; 可能会产生4,5的锁。 DDL语句时是6的锁。 以DBA角色, 查看当前数据库里锁的情况可以用如下SQL语句: select ...

    方维p2p分期贷款(大学生分期) 前后台验证码错误 session无法获取

    前后台验证码错误, 主要是session获取不到值, 即便关闭验证码也无法登录, 因为session 中 uid永远是null 系统跳转登录界面 死循环 安装本文档设置以下即可使用

    php提示Failed to write session data错误的解决方法

    本文较为详细的分析了php提示Failed to write session data错误的解决方法。分享给大家供大家参考。具体方法如下: 一、问题: 提示信息:Warning: Failed to write session data (files).Please verify that the ...

    php session 错误

    1. 错误提示 Warning: Cannot send session cookie – headers already sent Warning: Cannot send session cache limiter – headers already sent 分析及解决办法 这一类问题,的原因是你在程序中使用session_...

    方维p2p分期贷款 前后台验证码错误 session无法获取

    前后台验证码错误, 主要是session获取不到值, 即便关闭验证码也无法登录, 因为session 中 uid永远是null 系统跳转登录界面 死循环

    PHP100视频教程 32:PHP5中Cookie与 Session详解

    但session id是存放在client cookie的,当然php的session存放方法是多样化的,这样就算禁用cookie一样可以跟踪Cookie是完全保持在客户端的如:IE firefox 当客户端禁止cookie时将不能再使用2、Cookie的配置与应用 ...

    在JSP中使用Session制作简单的登录模块

    } else { out.println("登录错误,请输入正确名称"); } } %> <br></body><br></html> <br> JSP Member.jsp <br> <br>;charset=GB2312" %> <br><html><br><head><br>...

    PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法

    做开发的时候,操作session有时候会遇到这个问题:Warning: session_start() [function.session-start]…… 系统环境:WIN2003+IIS6+PHP5.2.12 PHP出现类似如下错误: Warning: session_start()[function.session-...

    Session&Cookie;.rar

    基于PHP两种会话机制,Session和Cookie的相关实例,帮助大家更好理解PHP会话机制。如有错误,请提出

    PHP100视频教程 (三十二、PHP5中Cookie与 Session详解)

    Cookie是完全保持在客户端的如:IE firefox 当客户端禁止cookie时将不能再使用 2、Cookie的配置与应用 Setcookie(string name, string value, int expire,string path, string domain, int secure); (1)、必须在...

    next-session:用于Next.js,micro,Express等的简单基于承诺的会话中间件

    项目状态:虽然将修复错误,但next-session不太可能在将来获得PR功能。 考虑使用其他替代方法,例如 + 或 。 安装 // NPM npm install next-session // Yarn yarn add next-session 用法 :backhand_index_pointing...

    tomcat6_redis_session.rar

    用户环境必须使用tomcat6,且想做集群环境,没办法只得找资源,可惜网上tomcat6的资源比较少,而且本人找到的基本都有错误,不能保存session进redis,导致每次测试页面都生成新的sessionid,所以最后自己跟源码解决...

    iscsi错误discovery session to ip failed to recv a PDU response, reconnecting

    iscsi错误discovery session to ip failed to recv a PDU response, reconnecting

    解决tomcat7,8使用memcache管理session时出现NoSuchFieldError:attributes错误的完整jar包

    使用tomcat7.0.84时,用memcached管理sessio,出现NoSuchFieldError:attributes错误,使用此jar报,放到tomcat lib目录下可完美解决此问题

    PHP中Fatal error session_start()错误解决步骤

    Fatal error: session_start() [function.session-start]: Failed to initialize storage module: files (path: ) in C:\usr\phpMyAdmin\libraries\session.inc.php on line 75 I.更改服务器配置: 1、检查error.log...

Global site tag (gtag.js) - Google Analytics