`
虚无的曾经
  • 浏览: 36935 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于 TOMCAT 的 session 的一个问题

    博客分类:
  • java
阅读更多

近来工作中发现一个一直被我忽略的问题:在tomcat中,Session是什么时候被创建的?

所用 tomcat 的版本:apache-tomcat-5.5.20。

Session是维持客户端和服务器端会话的  实现在多个页面之间访问保持状态

但是是什么时候被创建的呢?

以前在某J2EE论坛看见数个管理员的说法:session在有客户端访问时就被创建。

这个是对是错一直没有亲自去验证。

测试如下:

创建一个say Hello的servlet,创建一个say Hello的JSP,在里面用

java 代码
  1. HttpSession session = req.getSession(false);
  2. out.print(session);  

就可以发现,无论访问多少次的Servlet,打印出来的永远为null

但是访问JSP的话,就不会为null,结果为一串表示session对象的字符串。

PS:如果是访问的HTML页面的话,也不会有session的产生···

再在Servlet中修改:

java 代码
  1. HttpSession session = req.getSession(true);  

就可以发现访问Servlet的时候,session通过这个语句被创建。

在JSP头部加入

JSP 代码
  1. <%@page session="false"%>  

就可以发现此JSP不会再主动创建session对象。

结论:session对象直到某服务器端程序调用这样的语句时才被创建,而在JSP中会默认调用 

  1. HttpSession session = req.getSession(true);  

这个问题已经很清楚了,教训:不确定的必须自己亲自去做实验验证,不然。。。。。。

分享到:
评论

相关推荐

    tomcat修改sessionId

    tomcat修改sessionId,同一台服务器部署多个tomcat需要修改sessionId,否则会出现session冲突的问题

    设定tomcat中session过期时间.txt

    Tomcat作为一款广泛使用的Java应用服务器及Servlet容器,提供了多种方式来设定Session的有效时长。这有助于开发者根据具体业务需求灵活调整Session的生命周期。本文将详细介绍如何通过三种不同的方法来设定Tomcat中...

    nginx实现多个tomcat7直接session共享所需jar包

    这些缓存服务可以作为一个集中式的Session存储,Tomcat实例会将Session数据序列化后存储到Redis中,而Nginx则负责协调各个服务器之间的Session同步。 标签中的“session共享”指的就是上述的会话共享需求,“nginx...

    tomcat session存到mencache

    对于描述中提到的“版本为1.8”,这可能是指Tomcat的版本,因为Tomcat 1.8是较早的一个版本,支持session的外部化存储。 配置Tomcat session到Memcache涉及以下几个关键步骤: 1. **安装Memcache**:首先,你需要...

    tomcat redis session.rar

    3. **Redis**:Redis是一个开源的键值存储系统,支持多种数据结构如字符串、哈希、列表、集合和有序集合,且具有高速缓存和持久化能力。在本场景中,Redis作为Session的中央存储,所有Tomcat服务器都向Redis读写...

    Tomcat7+Redis+Session 负载之后session 共享 tomcat jar包

    以下是一个详细的步骤来实现Tomcat7+Redis的Session共享: 1. **安装和配置Redis**:首先,需要在所有Tomcat服务器和Nginx服务器上安装Redis服务,并确保它们可以正常运行和通信。 2. **配置Tomcat**: - 修改`$...

    tomcat8+memcached session共享

    在分布式系统中,session共享是一个重要的问题,因为用户在访问不同的服务器节点时,需要保持登录状态和其他会话信息的一致性。Memcached作为一个高性能的分布式内存对象缓存系统,常被用来解决这个问题。 描述中...

    tomcat-redis-session-manager的jar包-包含Tomcat7和Tomcat8

    为了解决这些问题,开发者引入了Redis作为session存储的中间件,而Tomcat-Redis-Session-Manager就是这样一个将Tomcat与Redis结合的解决方案。 Tomcat-Redis-Session-Manager是一个开源项目,它允许Tomcat服务器将...

    tomcat-session共享

    在构建分布式系统时,Session共享是一个关键问题,特别是在使用Linux上的Tomcat服务器集群与Nginx作为反向代理的情况。标题“tomcat-session共享”和描述中提到的问题,主要是指如何在多台Tomcat服务器之间以及通过...

    一台xp机器实现apache+tomcat session复制.docx

    总的来说,Apache和Tomcat的集成以及Session复制是一个涉及多个配置文件修改的过程,需要确保每个步骤都正确无误。通过这种方式,可以在一台XP机器上实现Web应用的负载均衡,提升系统可用性和容错性,同时保证用户...

    Tomcat8(Tomcat9)+redis实现Session共享(支持Redis集群)

    在单个服务器上,Session可以通过内存来管理,但在分布式环境下,多个服务器无法共享同一个内存中的Session,这就需要引入外部存储来实现Session共享。 Redis是一个高性能的键值数据库,常被用作缓存和会话存储解决...

    tomcat5 session 复制

    `SimpleTcpCluster` 是一个基于 TCP 的集群实现,而 `DeltaManager` 是用于处理 Session 数据更新的管理器。主要配置包括: - `tcpListenAddress`:指定接收复制数据的 IP 地址,例如 `192.168.1.55`。 - `...

    一个服务器搭多个tomcat导致session丢失,或者同一个IP不同端口,多个应用的session会冲突解决方法

    一个服务器上搭建了多个tomcat或者weblogic,端口不一样,同时启动访问时session丢失。如:A,B两个服务,在浏览器中登录访问A后,当前打开的浏览器上在开一个选项卡访问B服务后,回过来点击访问A时session丢失,...

    Tomcat8亲测可用 tomcat-redis-session-manager的jar包

    标题中的“Tomcat8亲测可用 tomcat-redis-session-manager的jar包”指的是一个专为Tomcat8设计的,用于管理session的扩展组件。这个组件实现了将Tomcat应用服务器中的用户session数据存储到Redis分布式缓存系统中,...

    Tomcat_Session的持久化

    当一个 Session 开始时,Servlet 容器会创建一个 HttpSession 对象。在某些情况下,把这些 HttpSession 对象从内存中转移到文件系统中或数据库中,需要访问的时候再把它们载入到内存中来。这样做的好处有两点:节约...

    tomcat cluster 集群 session复制

    一直以来,我误解认为启动了n个tomcat,则Session需要同步复制到n个Tomcat中存在,因此在启动了6个以上的Tomcat,性能会大大下降。 而实际情况下,采取Apache 加Tomcat进行负载均衡集群的时候,是可以不用将Session...

    tomcat实现session共享

    在IT行业中,尤其是在Web应用开发领域,服务器集群和session共享是一个关键问题。当多个服务器共同处理用户请求时,保持用户会话(session)的一致性是必要的,以确保用户在不同服务器之间切换时不会丢失登录状态或...

    memcached实现多个tomcat 共享一个session

    标题中的“memcached实现多个tomcat共享一个session”是指在分布式系统中,通过使用memcached作为session存储介质,实现多台Tomcat服务器之间的session共享。这样可以确保用户在集群中的任意一台服务器上登录后,其...

    tomcat-redis-session-manager包集合下载(tomcat8)

    tomcat-redis-session-manager是专门为Tomcat设计的一个插件,它实现了SessionManager接口,允许Tomcat将session数据序列化并存储到Redis中。这样,无论用户连接到哪个Tomcat实例,都可以从Redis中获取其session信息...

    tomcat8实现session共享jar包

    此压缩包为tomcat8利用redis实现session共享所需要的jar包,包含(commons-pool2-2.6.0.jar、jedis-2.9.0.jar、tomcat-redis-session-manager.jar)直接将三个jar包复制Tomcat目录lib下面,在修改conf下context.xml...

Global site tag (gtag.js) - Google Analytics