最近跟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对象必定存在,不需要进行那么判断,不需要在里面决定同一返回哪些页面,这个代码逻辑也清晰,一些冗余的代码不是也抽离出来了吗?
分享到:
相关推荐
### 二、在类中使用Session的步骤 要在类中使用Session,首先需要确保当前上下文(HttpContext)可用。因为Session是在请求上下文中存在的,所以在非HTTP请求处理的代码中(如后台任务或定时任务)直接访问Session...
### 在ASP.NET中使用Session常见问题集锦 #### Session为何会丢失? 在ASP.NET应用程序中,用户的状态(Session)有时会出现丢失的情况。这种情况的发生可能是由于多种原因造成的,比如应用程序池的回收、Session...
然而,Session丢失问题是一个常见的技术挑战,可能导致用户在使用过程中频繁地重新登录或者丢失相关信息。以下是对这个问题的详细分析和解决策略。 首先,我们需要理解Session丢失的常见原因: 1. **Cookie被禁用...
现在Ajax在Web项目中应用广泛,几乎可以说无处不在,这就带来另外一个问题:当Ajax请求遇到Session超时,应该怎么办? 显而易见,传统的页面跳转在此已经不适用,因为Ajax请求是XMLHTTPRequest对象发起的而不
本文将深入探讨Session的使用方法及其优势。 首先,理解Session的基本原理。Session数据存储在服务器端,避免了客户端直接接触敏感信息,如用户登录状态、个人信息等。在服务器端,Session是以文本文件的形式存在于...
7. **Session管理**:在大型应用中,可能需要考虑Session的分布式存储,例如使用Redis或Memcached等缓存服务来共享Session,以解决集群环境下的Session同步问题。 8. **安全注意事项**:尽管Session提供了用户状态...
"浏览器多窗口共用session引发的混乱"这个标题揭示了一个常见但往往被忽视的问题,即当用户在同一浏览器的不同窗口或标签页中打开同一个网站时,它们可能会共享同一份Session数据...
#### 方法二:检查Session变量是否存在 ```csharp string str; if (Session["UserName"] != null) { str = Session["UserName"].ToString(); } ``` 这种方法在读取`Session`变量之前先检查了变量是否存在。如果`...
在IT行业中,尤其是在Web应用程序开发中,Session共享是解决多服务器间用户状态一致性的重要技术。...通过正确配置和使用这个库,开发者可以避免因session不共享导致的问题,提升应用的性能和可靠性。
10. **错误处理与日志**:类可能有内置的错误处理机制,当Session操作出现问题时,能够记录错误信息并提供有用的反馈。 在实际开发中,这样的Session操作类可以方便地集成到项目中,统一管理Session,提高代码的...
在 ASP.NET 开发中,跨域和 Session 失效问题是一个常见的问题,但通过添加“P3P”协议和使用 HttpContext.Current.Session,我们可以解决这个问题,从而确保应用程序的正常运行。 相关知识点: * 跨域和 Session ...
这时,可以考虑使用Session集群、Session存储到数据库或使用分布式Session解决方案(如Redis、Memcached)。 综上所述,通过Session,我们可以方便地实现用户登录和退出功能,跟踪用户的会话状态。正确管理和使用...
如果没有Session共享机制,用户的Session信息可能会在切换服务器时丢失,导致用户体验下降,甚至出现错误。因此,确保Session在集群中的所有服务器间共享是提高系统可用性和性能的关键。 #### 实验步骤与分析 ####...
这个问题可能是由于多种原因引起的,包括但不限于:服务器配置问题、session过期、session存储机制故障或者是代码逻辑错误。下面我们将深入探讨这个主题,并提供可能的解决方案。 首先,我们要理解什么是session。...
客户端在发送请求时,如果收到401(未授权)或其他错误代码,可能表示Session已过期。此时,需要重新发起登录请求,获取新的Session ID。 五、安全考虑 - 保护用户数据:在传输过程中,应使用HTTPS协议确保数据加密...
二、Session作用域问题 Session作用域问题是指在SSM项目中,Session的作用域问题。在用户登录系统成功后,把该用户的相关信息放进一个Session域中方便调用,并取名为xx。这样,当用户登录进入系统之后,可以修改...
以上就是在Java中使用HttpClient保持SESSION状态的基本流程。在实际项目中,可能还需要处理重定向、超时、错误处理等复杂情况。注意,对于HTTPS站点,可能需要配置SSLContext和TrustManager,以允许HttpClient信任自...
在使用自定义session store时,务必处理可能的网络错误或存储异常,以免影响整个应用的稳定性。 总结,Express-Session是Express框架中的重要组成部分,它通过源码中的巧妙设计实现了高效且安全的会话管理。理解其...