我想知道粘性和非粘性会话之间的区别.从互联网上阅读后我理解的内容:
粘性:只有单个会话对象.
非粘性会话:每个服务器节点的会话对象
看起来很简单,但我找不到一个好方法.
在第一页说我创建一个变量
$myVariable = "Some text";
Run Code Online (Sandbox Code Playgroud)
表单对该页面的操作是"Page2.php".所以在Page2.php中,我怎样才能访问该变量?我知道我可以用会话来做,但我认为这对于一个简单的字符串来说太过分了,我只需要传递一个简单的字符串(文件名).
我怎样才能做到这一点?
谢谢!
令我彻底混淆的一件事是使用session.Flush,和session.Commit,和session.Close.
有时session.Close工作,例如,它提交我需要的所有更改.我知道我需要在有事务时使用提交,或者需要在具有多个创建/更新/删除的工作单元中使用提交,以便我可以选择在发生错误时回滚.
但有时我真的被后面的逻辑所困扰session.Flush.我已经看到了一些示例,其中有一个session.SaveOrUpdate()后续的同花顺,但是当我删除Flush时它无论如何都能正常工作.有时我在Flush语句中遇到错误,说会话超时,并删除它确保我没有遇到该错误.
有没有人有关于何时何地使用同花顺的良好指导方针?我已经检查了NHibernate文档,但我仍然找不到简单的答案.
我只是想通知我实际上可以在$ _SESSION中存储对象,我发现它非常酷,因为当我跳转到另一个页面时,我仍然有我的对象.在我开始使用这种方法之前,我想知道它是否真的是一个好主意,或者是否存在潜在的陷阱.
我知道,如果我有一个单一的入口点,我就不需要这样做,但我还没有,所以我没有一个入口点,我真的想保留我的对象,因为我不我失去了我的状态.(现在我还读到我应该编写无状态站点,但我还不了解这个概念.)
因此,在短期:是否确定存储对象的会话,是否有任何问题,它?
编辑:
临时总结:到目前为止,我知道重新创建对象可能更好,即使它涉及再次查询数据库.
进一步的答案可能会更详细地说明这方面!
我有一种情况需要将分离的对象重新附加到休眠会话,尽管会话中已经存在相同标识的对象,这将导致错误.
现在,我可以做两件事之一.
getHibernateTemplate().update( obj )
当且仅当对象在hibernate会话中不存在时,这才有效.抛出异常,说明当我稍后需要时,会话中已存在具有给定标识符的对象.
getHibernateTemplate().merge( obj )
当且仅当hibernate会话中存在对象时,此方法才有效.如果我使用它,当我需要稍后在会话中的对象时抛出异常.
鉴于这两种情况,我如何一般地将会话附加到对象?我不想使用异常来控制这个问题解决方案的流程,因为必须有一个更优雅的解决方案......
我正在尝试在javascript中设置会话cookie,如下所示:
document.cookie = 'name=alex; path=/'
Run Code Online (Sandbox Code Playgroud)
但即使我退出浏览器并再次启动浏览器,Chrome也不会将其删除.
我检查了Firefox和Opera,两者都按预期工作 - 他们在浏览器退出时删除了会话cookie.
Chrome是否只是忽略过期规则?
我检查了多个操作系统,发现会话cookie在Windows XP和Ubuntu中的Chrome上被删除,但在Mac OSX Lion中没有.
几个月前我开始使用PHP.为了为我的网站创建登录系统,我阅读了有关cookie和会话及其差异的信息(cookie存储在用户的浏览器和服务器上的会话中).那时候,我更喜欢饼干(谁不喜欢饼干?!)并且只是说:"谁在乎?我没有任何好处将它存储在我的服务器中",所以,我继续使用cookies我的学士毕业设计.然而,在完成我的应用程序的重要部分之后,我听说对于存储用户ID的特定情况,会话更合适.所以我开始考虑如果陪审团问我为什么用饼干代替会话,我会怎么说?我有这个原因(我不需要存储有关用户的内部信息).那是不够的一个原因?还是不止于此?
能告诉我使用cookies保存用户ID的优缺点吗?
感谢StackOverflow中的所有人!
我正在编写一个Web应用程序,允许用户浏览网站内的多个网页,提出某些请求.用户输入的所有信息都将存储在我创建的对象中.问题是我需要从网站的任何部分访问此对象,我真的不知道实现这一目标的最佳方法.我知道一个解决方案是使用会话变量,但我不知道如何在asp .net MVC中使用它们.我会在哪里声明会话变量?还有其他方法吗?
我已经非常努力但无法找到如何为ASP.Net Web应用程序的进程内会话设置会话超时值的解决方案.
我使用的是VSTS 2008 + .Net 3.5 + C#.以下是我自己写的将超时设置为1分钟,这是正确的吗?
我在system.web部分下写了 web.config
<sessionState timeout="1" mode="InProc" />
Run Code Online (Sandbox Code Playgroud) 免责声明:我是REST学校的新手,我正试图围绕它思考.
所以,我正在阅读这个页面,常见的REST错误,而且我发现我对会话无关紧要的部分感到困惑.这就是页面所说的内容:
客户端不需要"登录"或"启动连接".HTTP验证在每条消息上自动完成.客户端应用程序是资源的消费者,而非服务.因此没有什么可登录的!假设您在REST网络服务上预订航班.您不创建与服务的新"会话"连接.而是要求"行程创建者对象"为您创建一个新的行程.您可以开始填充空白,然后在网络上的其他地方获得一些完全不同的组件以填充其他一些空白.没有会话,因此在客户端之间迁移会话状态没有问题.也没有"会话亲和力"的问题
好的,我得到HTTP身份验证是在每条消息上自动完成的 - 但是如何?是否每次请求都会发送用户名/密码?那不就是增加攻击面积吗?我觉得我错过了这个难题的一部分.
例如,拥有一个/session接受GET请求的REST服务是不是很糟糕,在请求中传入用户名/密码,如果验证成功则返回会话令牌,然后可以随后的请求传递?从REST的角度来看,这是否有意义,还是忽略了这一点?