tomcat配置session共享到redis

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包的版本不對導致,慢慢調試,有問題交流,謝謝!

 

 

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章