Lift 电梯会话管理

Lift 电梯会话管理,lift,Lift,我是个新手。到目前为止,我一直在使用MVC模型,并使用基本的会话管理模型,即在会话中存储令牌并检查每个请求。 我正试图用lift做同样的事情,但是我的疗程突然结束了。甚至有一段时间我刚登录,它就注销了。我的分析表明,每当我收到这样的日志消息: 信息-会话ucjrn5flnq9q1ke52z5zixgtt已过期 我已经搜索过了,但找不到任何由servlet容器管理的逐步教程会话。你用哪一种?您应该查看容器的文档。我找到了问题的解决方案。我使用嵌入式jetty服务器,在那里我使用ServletCon

我是个新手。到目前为止,我一直在使用MVC模型,并使用基本的会话管理模型,即在会话中存储令牌并检查每个请求。 我正试图用lift做同样的事情,但是我的疗程突然结束了。甚至有一段时间我刚登录,它就注销了。我的分析表明,每当我收到这样的日志消息:
信息-会话ucjrn5flnq9q1ke52z5zixgtt已过期


我已经搜索过了,但找不到任何由servlet容器管理的逐步教程会话。你用哪一种?您应该查看容器的文档。

我找到了问题的解决方案。我使用嵌入式jetty服务器,在那里我使用ServletContextHandler注册提升过滤器。我将它改为WebAppContext,它开始工作正常


Puneet

不要试图使用S.get等人访问会话绑定信息。这很危险。这样做:

class Thing {
  object SessionThing extends SessionVar[Box[String]](Empty)
  ...
  def someMethod = {
    ...
    SessionThing.is // returns you a Box[String].
    // operates on the session variable if it exists, 
    // otherwise provides a sensible default
    SessionThing.is.map(_.toLowerCase).openOr("default") 
    ...
  }
}

您需要真正理解代码片段和状态生命周期,因为您似乎没有完全理解lift的会话机制是如何工作的

谢谢你的回复。我正在使用嵌入式Jetty web容器。我和jetty一起使用普通J2ee应用程序已经很长时间了,它们工作得很好。是否与Lift有关,比如它需要一些特殊的实现?如何存储/检查会话数据?如果没有更多信息,这很难诊断。通常会话应该在没有任何额外工作的情况下工作。我希望避免生成war文件,而不是部署应用程序。相反,我只希望所有单元都作为单个jar文件运行。