java session共享,session如何实现共享?

TheDisguiser 2020-06-22 23:06:22 java常见问答 8791

Session是web开发中常用到的一种技术,小伙伴们知道session该如何实现共享吗?下面让小编为你介绍介绍吧。

一、环境搭建

操作系统:windows 7 64位

http server:nginx 1.9.7

缓存系统:memcached

Servlet容器:apache-tomcat-7.0.65

二、实现步骤

1)、把tomcat复制为两份,避免tomcat端口号发生冲突,并修改tomcatconfserver.xml 端口号。

2)、在两个tomcatwebapps下建立文件夹,之后新建一个jsp文件,jsp文件内容为< %= session.getId() % >,为了区别跳转路径我们还可以在内容中追加编号,如tomcat1、tomcat2等。

3)、启动所有tomcat并访问 http: //localhost:port/<新建的文件夹>/<jsp文件>。此时,两个tomcat都是独立运行的。所以我们需要配置nginx集成所有tomcat。

4)、修改ngxigconf ginx.conf配置文件

upstream test
{
    server ip: port;
    server ip: port;
}
server
{
    listen 80;
    server_name ip;#
    charset koi8 - r;#
    access_log logs / host.access.log main;
    location / test
    {
        root jsp;
        index login.jsp;
        proxy_pass http: //test;  (test为upstream配置的别名)  
    }

5)、打开cmd命令行工具进入nginx使用命令 nginx启动。

6)、按照如上例子通过浏览器访问 http://localhot/<文件夹>/ 就能访问jsp页面。按F5刷新可以看到请求页面是在两个jsp页面切换,sessionId不断更换。

7)、停止tomcat,将下载好的memcached相关的jar包放到tomcatlib下

8)、解压memcached,使用cmd命令进入该目录,执行 memcached -d install命令,安装好后,使用memcached -d start启动memcached服务。

9)、修改tomcatconfcontext.xm文件,将以下内容添加到标签内。

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 
memcachedNodes="n1:ip:port" requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$" 
sessionBackupAsync="false" 
sessionBackupTimeout="100"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" copyCollectionsForSerialization="false"/>

添加好后,记得修改IP与端口。

10)、启动tomcat,访问nginx配置的路径,http://localhot/<文件夹>/ 此时再按F5刷新页面会就会发现无论访问哪个页面sessionID都是一致的,我们就配置成功了。

以上就是session实现共享的所有内容了,小伙伴们明白了吗?如果还想知道更多关于session的常见问题就请持续关注我们网站吧。

推荐阅读:

java session工作原理详解,session是什么?

java session生命周期是多少?该如何设置?

java session属性是指什么?session有哪些属性?