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

 

 

分享到:
评论

相关推荐

    asp.net c# 在类中使用session的方法

    ### 二、在类中使用Session的步骤 要在类中使用Session,首先需要确保当前上下文(HttpContext)可用。因为Session是在请求上下文中存在的,所以在非HTTP请求处理的代码中(如后台任务或定时任务)直接访问Session...

    在asp.net中使用session常见问题集锦

    ### 在ASP.NET中使用Session常见问题集锦 #### Session为何会丢失? 在ASP.NET应用程序中,用户的状态(Session)有时会出现丢失的情况。这种情况的发生可能是由于多种原因造成的,比如应用程序池的回收、Session...

    关于session丢失问题

    然而,Session丢失问题是一个常见的技术挑战,可能导致用户在使用过程中频繁地重新登录或者丢失相关信息。以下是对这个问题的详细分析和解决策略。 首先,我们需要理解Session丢失的常见原因: 1. **Cookie被禁用...

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

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

    session使用方法

    本文将深入探讨Session的使用方法及其优势。 首先,理解Session的基本原理。Session数据存储在服务器端,避免了客户端直接接触敏感信息,如用户登录状态、个人信息等。在服务器端,Session是以文本文件的形式存在于...

    java中使用session模拟用户登陆

    7. **Session管理**:在大型应用中,可能需要考虑Session的分布式存储,例如使用Redis或Memcached等缓存服务来共享Session,以解决集群环境下的Session同步问题。 8. **安全注意事项**:尽管Session提供了用户状态...

    浏览器多窗口共用session引发的混乱

    "浏览器多窗口共用session引发的混乱"这个标题揭示了一个常见但往往被忽视的问题,即当用户在同一浏览器的不同窗口或标签页中打开同一个网站时,它们可能会共享同一份Session数据...

    请问ASPX中如何读取SESSION变量

    #### 方法二:检查Session变量是否存在 ```csharp string str; if (Session["UserName"] != null) { str = Session["UserName"].ToString(); } ``` 这种方法在读取`Session`变量之前先检查了变量是否存在。如果`...

    session共享 memcached-session-manager 1.9.6 jar

    在IT行业中,尤其是在Web应用程序开发中,Session共享是解决多服务器间用户状态一致性的重要技术。...通过正确配置和使用这个库,开发者可以避免因session不共享导致的问题,提升应用的性能和可靠性。

    php session操作类

    10. **错误处理与日志**:类可能有内置的错误处理机制,当Session操作出现问题时,能够记录错误信息并提供有用的反馈。 在实际开发中,这样的Session操作类可以方便地集成到项目中,统一管理Session,提高代码的...

    【ASP.NET编程知识】iframe跨域与session失效问题的解决办法.docx

    在 ASP.NET 开发中,跨域和 Session 失效问题是一个常见的问题,但通过添加“P3P”协议和使用 HttpContext.Current.Session,我们可以解决这个问题,从而确保应用程序的正常运行。 相关知识点: * 跨域和 Session ...

    session存用户名密码实现用户登录和退出

    这时,可以考虑使用Session集群、Session存储到数据库或使用分布式Session解决方案(如Redis、Memcached)。 综上所述,通过Session,我们可以方便地实现用户登录和退出功能,跟踪用户的会话状态。正确管理和使用...

    使用terracotta实现session共享的证实实验

    如果没有Session共享机制,用户的Session信息可能会在切换服务器时丢失,导致用户体验下降,甚至出现错误。因此,确保Session在集群中的所有服务器间共享是提高系统可用性和性能的关键。 #### 实验步骤与分析 ####...

    “session已关闭”——解决方案

    这个问题可能是由于多种原因引起的,包括但不限于:服务器配置问题、session过期、session存储机制故障或者是代码逻辑错误。下面我们将深入探讨这个主题,并提供可能的解决方案。 首先,我们要理解什么是session。...

    android获取web服务器端session并验证登陆

    客户端在发送请求时,如果收到401(未授权)或其他错误代码,可能表示Session已过期。此时,需要重新发起登录请求,获取新的Session ID。 五、安全考虑 - 保护用户数据:在传输过程中,应使用HTTPS协议确保数据加密...

    ssm项目session使用及其作用域问题

    二、Session作用域问题 Session作用域问题是指在SSM项目中,Session的作用域问题。在用户登录系统成功后,把该用户的相关信息放进一个Session域中方便调用,并取名为xx。这样,当用户登录进入系统之后,可以修改...

    Java 使用HttpClient保持SESSION状态

    以上就是在Java中使用HttpClient保持SESSION状态的基本流程。在实际项目中,可能还需要处理重定向、超时、错误处理等复杂情况。注意,对于HTTPS站点,可能需要配置SSLContext和TrustManager,以允许HttpClient信任自...

    Express-Session源码分析

    在使用自定义session store时,务必处理可能的网络错误或存储异常,以免影响整个应用的稳定性。 总结,Express-Session是Express框架中的重要组成部分,它通过源码中的巧妙设计实现了高效且安全的会话管理。理解其...

Global site tag (gtag.js) - Google Analytics