设为首页 收藏本站
查看: 1106|回复: 0

[经验分享] jetty-如何序列化会话

[复制链接]

尚未签到

发表于 2017-2-26 08:36:46 | 显示全部楼层 |阅读模式
  jetty中文文档:www.jettycn.com


如何序列化会话(Session)

  Jetty
>> howto
>> 如何序列化会话(Session)

介绍

  在重启Jetty后维护现有的会话有些时候是很有用的。HashSessionManager
支持此功能。如果启用了持久化特性,HashSessionManager将在关闭前保存所有现存的有效的会话到磁盘。在重新启动时,Jetty将恢复保存的会话。



启用持久化特性

  SessionManager的作用正如其名称所示,它代表web应用程序管理会话的生命周期和状态。每个web应用程序必须有自己唯一的SessionManager实例。启用持久化特性和把HashSessionManager配置为web应用的SessionManager一样简单,只需告诉HashSessionManager在磁盘的那个位置存储会话:

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
.
.
.
<Set name="sessionHandler">
<New class="org.eclipse.jetty.servlet.SessionHandler">
<Arg>
<New class="org.eclipse.jetty.servlet.HashSessionManager">
<Set name="storeDirectory">your/chosen/directory/goes/here</Set>
</New>
</Arg>
</New>
</Set>
.
.
.
</Configure>


  提示
如果你想为多个web应用持久化会话:


  • 为每个web应用配置单独的HashSessionManager。
  • 为每个web应用指定不同的"storeDirectory"。
  上面的例子使用了一个适用于org.eclipse.jetty.deploy.ContextDeployer
的配置文件,因此,你可能想看看Context
Deployer
的功能指南。



延迟会话加载

  你可能需要确保在servlet环境启动后才加载会话(默认情况下,Jetty急切的加载会话,这是做为容器启动的一部分的,但在此之前,它会初始化servlet环境)。例如,Wicket
web框架要求servlet环境在会话被激活时可用。
  设置SessionManager.setLazyLoad(true),Jetty将延迟加载会话,当它接收到要求会话的第一个请求时,或者会话回收线程第一次运行时,才会触发会话加载,以先发生的事件为准。下面是xml配置示例:

<Set name="sessionHandler">
<New class="org.eclipse.jetty.servlet.SessionHandler">
<Arg>
<New class="org.eclipse.jetty.servlet.HashSessionManager">
<Set name="lazyLoad">true</Set>
</New>
</Arg>
</New>
</Set>





为Maven Jetty插件启用会话持久性

  要为Maven Jetty插件启用会话持久性,像下面这样在<configuration>部分配置HashSessionManager:

<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.6</version>
<configuration>
<scanIntervalSeconds>1</scanIntervalSeconds>
<webAppConfig implementation="org.eclipse.jetty.plugin.Jetty6PluginWebAppContext">
<contextPath>/foo</contextPath>
.
.
.
<sessionHandler implementation="org.eclipse.jetty.servlet.SessionHandler">
<sessionManager implementation="org.eclipse.jetty.servlet.HashSessionManager">
<storeDirectory>${basedir}/target/your/sessions/go/here</storeDirectory>
</sessionManager>
</sessionHandler>
.
.
.
</webAppConfig>
</configuration>
</plugin>





其他资源

  有关详细信息,请参阅基于数据库的Session集群配置教程
教程。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-347237-1-1.html 上篇帖子: 8.3和Jetty集成 下篇帖子: Jetty学习三.Maven中配置jetty插件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表