1、采用开源插件https://github.com/cc-chen/tomcat8.5-redis-session-manager,将代码下载下来,导入eclipse中export jar包,在export之前需要配置build path add external jars,包括tomcat的servlet-api.jar,tomcat-juli.jar,tomcat-api.jar,catalina.jar,最后打的报名为tomcat8.5-redis-session-manager.jar
2、本机的java环境如下
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
tomcat版本:8.5.20
3、需要下载支持java 8的jedis jar包,直接下载了2.6.2版本的https://github.com/xetorthio/jedis/releases/tag/jedis-2.6.2
4、下载commons-pool2-2.8.0.jar,这个支持java 8
下载链接 http://commons.apache.org/proper/commons-pool/download_pool.cgi
5、复制下面的文件到TOMCAT_BASE/lib目录:
- tomcat8.5-redis-session-manager.jar
- jedis-2.6.2.jar
- commons-pool2-2.8.0.jar
6、重启tomcat
7、测试代码
package com.yiibai.springmvcresource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class MyController {
@RequestMapping(value = "/test")
public String test(HttpSession session, HttpServletRequest request) {
request.setAttribute("id", session.getId());
System.out.println(request.getSession().getAttributeNames());
return "index";
}
}
jsp文件如下
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%-- <%@ page isELIgnored ="false" %> --%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'TestUpload.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
我的session:${id}
<br> sessionid=<%=session.getId()%></body>
</html>
8、
添加下面的配置到tomcat的context.xml中
<Valve className="com.s.tomcat.redissessions.RedisSessionHandlerValve"/>
<Manager className="com.s.tomcat.redissessions.RedisSessionManager"
host="localhost"
port="6379"
database="0"
password="xx"
maxInactiveInterval="60" />
注意redis不需要密码就将password都去掉
9、启动tomcat和redis服务,访问
http://localhost:8080/xxx/test
10、查看redis中是否存储了session数据
在调试过程中报错,有可能是jedis之类的jar包的版本不对导致,慢慢调试,有问题交流,谢谢!