最近在做一个接口项目,其中有一个接口的节点在规范中明确要求输入一个长度为32位的SessionID。开始,项目在开发的Tomcat6.0环境下运行,接口一切正常。后来,移到测试机器中的Tomcat下,发现该验证接口返回的全是错误结果。通过跟踪HTTP包发现,测试机上Tomcat产生的SessionID越界,除了原有32位还跟有一串固定的字符。
<%
System.out.println(session.getId());
%>
DEV Tomcat: JSESSIONID=1392155003AF2D71BB5FFCA93EAC9930
TEST Tomcat: JSESSIONID=73B09B4A798FB8354D0A00CFFC6A4BA9.jvm1
比对开发和测试环境的conf/server.xml,发现测试机器server.xml中节点<Enginename="Standalone" defaultHost="localhost" jvmRoute="jvm1">设置了jvmRoute属性,去掉后生成的SessionId就是32位。
在Weblogic下默认SessionID的长度为52位,但也可以将其长度设置为32位。修改当前项目下的weblogic.xml配置文件。
<session-descriptor>
<id-length>32</id-length>
</session-descriptor>
分享到:
相关推荐
2. **URL rewriting**: 在URL中添加session ID,但会增加URL长度,且不适合SEO。 3. **基于粘滞会话(Sticky Sessions)**: Nginx根据特定策略(如IP哈希)将客户端请求始终路由到同一台Tomcat服务器,保持session...
- **会话持久化(Session Persistence)**:通过会话复制或会话ID重定向确保会话在集群中的连续性。 **集群配置** 4. **准备软件** - 安装多台运行Tomcat的服务器,以及一个负载均衡器,如Apache HTTP Server或...
Session用于存储用户会话信息,原理是服务器分配一个唯一ID(session ID)给客户端,客户端通过Cookie或URL重写等方式回传session ID,服务器根据ID找到对应会话数据。 Cookie是服务器发送到客户端的小型文本文件...
4. **Session管理**:在URL重定向或链接中,有时需要通过URL重写传递Session ID,以维持会话状态。 总的来说,JSP和Tomcat服务器是Java Web开发的基础,理解它们的工作原理和交互机制对于构建高效、稳定的应用至关...
1. **原理**:当用户成功登录后,服务器生成一个唯一的Token(通常包含用户ID等信息),并设置为Persistent Cookie,过期时间设定为十天。此后,每次用户访问网站,服务器通过检查Cookie中的Token来识别用户,无须...
包括setAttribute、getAttribute、removeAttribute和getId等,用于在Session中添加、获取、移除属性和获取Session ID。 19. **Session的生命周期**: 从创建开始,当用户活动时持续有效,或者达到配置的超时时间...
Session是由服务器管理的,每个用户会话对应一个唯一的Session ID,存储在服务器端,用于跟踪用户的状态。Cookie则是在客户端存储的小型文本文件,服务器可以设置和读取Cookie,通常用于存储用户偏好或会话信息。...
- 原理通常是通过HTTP头的Set-Cookie设置一个唯一的Session ID,浏览器每次请求时携带此ID,服务器根据ID找到对应的Session。 13. **Cookie**: - 小型文本文件,存储在客户端,用于存储用户偏好、登录状态等信息...
- `session.getId()` 用于获取会话 ID。 - **Application Scope:** 通过 `application.setAttribute("name","ML")` 设置,在整个应用服务器范围内有效。 **11. JSP 控件显示乱码解决:** - 为了防止 JSP 页面出现...
2. **生成随机字符串**:在Servlet中,我们需要生成一个随机字符串,通常包含字母和数字,长度在4到6位之间。可以使用`java.util.Random`和`java.lang.Character`类来实现。 3. **绘制验证码图像**:生成字符串后,...
` 查询`a_id`字段的长度。 - `char` 和 `varchar` 是两种常见的字符数据类型,其中`char`是固定长度的字符类型,而`varchar`是可变长度的字符类型。 - `select sysdate from dual;` 查询系统当前日期时间。 ### Web...
实验八引入了JavaBean的概念,你需要创建一个包含书ID、书名和价格属性的JavaBean,并编写getter和setter方法。同时,实现一个登录界面,验证用户输入的学号和姓名,通过DAO(Data Access Object)模式查询数据库。...
MD5(Message-Digest Algorithm 5)是一种常用的密码哈希函数,可以将任意长度的信息转化为固定长度的哈希值。在注册过程中,用户输入的密码经过MD5加密后存储在数据库中。在登录时,用户输入的密码同样加密,然后与...
解决方法包括找出并结束相关会话(使用`ALTER SYSTEM KILL SESSION 'sid,serial#'`),然后执行`DROP USER username CASCADE`来删除用户及其所有关联对象。 7. **Tomcat中文乱码问题**:当Tomcat接收到中文参数时,...
- `getServletConfig().getServletContext().getServerInfo()`: 返回服务器的实现信息,例如Tomcat版本等。 - `request.getRemoteAddr()`: 返回发起请求的客户端IP地址。 - `request.getRemoteHost()`: 返回发起...
- **trimToSize()**:调整容量以恰好等于字符串的实际长度。 #### Arrays的用法总结 - **Arrays类提供了多种静态方法用于处理数组**,如排序、填充、搜索等。 #### Collection - **常用的方法**:如`add()`、`...
在开始之前,确保你已安装了JDK、Tomcat服务器以及一个IDE(如Eclipse或IntelliJ IDEA)。此外,可能需要使用到Java的`java.awt`和`javax.imageio`包来处理图形和图像。 2. **创建验证码图像**: 首先,我们需要...
- **Tomcat工作原理**: Tomcat作为一个Web服务器,主要处理HTTP请求并返回响应。它通过一个前端的HTTP Connector接收HTTP请求,然后将请求分发给相应的Servlet容器处理。Servlet容器负责加载和实例化Servlet,并调用...
- `@Id`:标识一个字段为表的主键,通常与`@GeneratedValue`结合使用自动生成主键。 - `@GeneratedValue(strategy=GenerationType.IDENTITY)`:主键生成策略,这里表示由数据库自增。 - `@Column`:定义字段在表...