jetty中文文档:www.jettycn.com
如何配置会话ID(Session IDs)
Jetty
>> howto
>> 如何配置会话ID(Session IDs)
介绍
应用下面的配置可以修改web应用程序的会话(session)特性:
步骤
Init参数
Context Parameter名称 |
默认值 |
描述 |
org.eclipse.jetty.servlet.SessionCookie |
JSESSIONID |
会话cookie名称默认为JSESSIONID,特定的web应用可以通过这个context
param设置为其他值。 |
org.eclipse.jetty.servlet.SessionIdPathParameterName |
jsessionid |
会话URL参数名称。默认值为jsessionid,特定的web应用可以通过这个context
param设置为其他值。设置为"none",则禁用URL重写。 |
org.eclipse.jetty.servlet.SessionDomain |
- |
会话域。如果这个属性做为一个ServletContext参数设置了,那么它的值将用作会话cookie的域。如果不设置,则没有为会话cookie指定域。 |
org.eclipse.jetty.servlet.SessionPath |
- |
会话路径。如果这个属性做为一个ServletContext参数设置了,那么它的值将用作会话cookie的路径。如果不设置,则context
path将用作会话cookie的路径。 |
org.eclipse.jetty.servlet.MaxAge |
-1 |
会话的Max Age。如果这个属性做为一个ServletContext参数设置了,那么它的值将用作会话cookie的max
age。如果不设置,则max age的值为-1。 |
示例
以上的配置即可以做为<context-param>设置在web应用程序的WEB-INF/web.xml文件中,就像这样:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
...
<context-param>
<param-name>org.eclipse.jetty.servlet.SessionCookie</param-name>
<param-value>XSESSIONID</param-value>
</context-param>
<context-param>
<param-name>org.eclipse.jetty.servlet.SessionIdPathParameterName</param-name>
<param-value>xsessionid</param-value>
</context-param>
...
</web-app>
也可以设置到配置web应用程序的Jetty上下文xml文件中(WebAppContext好像没有setInitParams方法了):
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
<Set name="contextPath">/test</Set>
<Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/test</Set>
...
<Set name="initParams">
<Map>
<Entry>
<Item>org.eclipse.jetty.servlet.SessionCookie</Item>
<Item>XSESSIONID</Item>
</Entry>
<Entry>
<Item>org.eclipse.jetty.servlet.SessionIdPathParameterName</Item>
<Item>xsessionid</Item>
</Entry>
</Map>
</Set>
</Configure>
要了解关于param的更多信息,请查看org.eclipse.jetty.server.SessionManager类的源码:http://download.eclipse.org/jetty/stable-7/xref/org/eclipse/jetty/server/SessionManager.html
分享到:
相关推荐
如何配置会话ID(Session IDs) 如何序列化会话(Session) 如何重定向或移动应用(Context) 如何让一个应用响应一个特定端口 使用JNDI 使用JNDI 在JNDI中配置数据源(DataSource) 内嵌Jetty服务器 内嵌Jetty教程 ...
- **URL重写**:通过在URL中添加会话ID来实现会话跟踪。 **12.2 集群** 对于高可用性和负载均衡的需求,Jetty支持会话复制,通过在多个Jetty实例之间复制会话数据,实现应用的水平扩展。 #### 十三、性能优化 **...
- **会话管理器设置**:`HashSessionIdManager` 用于管理会话 ID,这里设置了工作节点名称(`workerName`)为 `node1`。 - **处理器设置**:`HandlerCollection` 和 `DefaultHandler` 分别用于组织多个处理器和...
这包括设置SSL/TLS、自定义会话ID策略、添加安全约束等。 6. **Jetty Eclipse Plugin使用**:熟悉插件的安装和配置过程,学习如何在Eclipse中快速启动Jetty服务器、部署应用、调试Servlet和JSP,以及进行热部署和...
- **`jetty.xml`**:这是Jetty容器的主配置文件,用于定义服务器的各种属性,比如线程池配置、监听端口等。 - **`webdefault.xml`**:这是一个默认的`web.xml`格式文件,在实际的`web.xml`被加载前会被应用到上下...
在Jetty中,我们可以利用JNDI来管理资源,如数据源、邮件会话等,以便在Web应用中进行共享。 1. **JNDI的基本概念** - JNDI提供了一种标准的方式来查找和访问各种资源和服务,如数据库连接池、对象工厂等。 - 它...
这通常通过在会话中存储关键数据(如用户ID)来实现。 3. **网络通信**: - **AJAX(Asynchronous JavaScript and XML)**:聊天室可能采用了AJAX技术来实现实时通信。通过异步发送请求,用户可以无需刷新页面就能...
1. 使用容器扩展插件:可以使用容器扩展插件来实现 session 共享,如 tomcat-redis-session-manager 插件、jetty-session-redis 插件、memcached-session-manager 插件。 2. 使用 Nginx 负载均衡的 ip_hash 策略:...
安全性方面,bboss会话共享通过在客户端基于cookie机制存储sessionid,并设置cookie的HttpOnly属性来防止XSS攻击窃取sessionid,通过设置Secure属性并在HTTPS环境下传输来防止sessionid被窃取。同时,还提供会话信息...
对于脱机分析,如果配置文件仅包含单个会话,则不再需要在-agentpath VM参数中指定会话ID 使用-agentpath VM参数中的“id”或“config”选项现在会自动激活“立即启动”模式 添加了JPROFILER_AGENT_OPTIONS环境变量...
- **会话管理**:通过URL传递会话ID,实现无会话ID的URL。 - **URL美化**:隐藏动态参数,生成静态化的URL。 - **SEO优化**:创建对搜索引擎友好的URL。 - **URL编码与解码**:处理URL中的特殊字符。 - **条件判断**...
Session的生命周期通常可以通过配置服务器来设定,例如30分钟无操作则自动失效。 **3. Session的实现方式** 在Java Web开发中,Session是通过`javax.servlet.http.HttpSession`接口实现的。开发者可以调用`...
sequence | 分布式高效ID生产 | [http://git.oschina.net/yu120/sequence](http://git.oschina.net/yu120/sequence) AliOSS & Qiniu & QcloudCOS | 云存储 | [https://www.aliyun.com/product/oss/]...
- 使用Tomcat、Jetty等Web服务器部署项目,配置虚拟主机和应用上下文。 - 配置数据库连接池,如Apache DBCP或HikariCP,提高数据库连接效率。 这个“购物车项目”涵盖了Web开发的多个核心领域,包括前端交互、...
为了解决这个问题,Web开发者引入了会话概念,通过分配一个唯一的会话ID来标识特定用户的一系列交互。 在Java Servlet中,我们可以使用HttpSession接口来创建、获取和管理会话。以下是一些关键的会话操作: 1. **...
- 通过session管理用户会话,确保登录状态的安全。 - 数据库连接池优化,如Druid或HikariCP,提高数据库访问效率。 - 缓存策略,如Redis,减少不必要的数据库查询。 7. **部署与运行** - 使用Tomcat或Jetty等...
- **conversationScope**:会话作用域,支持会话间的持久化。 - **requestParameters**:访问请求参数。 - **currentEvent**:当前事件的上下文。 - **currentUser**:当前登录的用户。 - **messageContext**:消息...
当客户端请求携带会话ID时,Tomcat根据ID查找并恢复会话状态。此外,Tomcat还支持会话超时、分布式会话和会话持久化等高级功能。 5. **安全性与权限控制** Tomcat使用Realm组件进行身份验证,如MemoryRealm、...