resis实现tomcat7 session 共享

resis实现tomcat7 session 共享
1.下载
  compile group: 'redis.clients', name: 'jedis', version: '2.5.2'
  compile group: 'org.apache.commons', name: 'commons-pool2', version: '2.2'

  testCompile 'org.hamcrest:hamcrest-core:1.3'
  testCompile 'org.hamcrest:hamcrest-library:1.3'

  redis-session-tomcat-1.0.jar 附件中有

把下载的jar 报放到lib 文件夹中。

2.在tomcat7 conf/context.xml 文件中添加:

   <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
    <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
    host="192.168.6.24"
    port="6379"
    database="0"
    maxInactiveInterval="1"
    connectionPoolMaxTotal="5"
    sessionPersistPolicies="ALWAYS_SAVE_AFTER_REQUEST"
     />

   sessionPersistPolicies:策略
   maxInactiveInterval:保存时间(最后与tomcat session相同)
   connectionPoolMaxTotal:最大连接池数量,默认为8




测试代码:
package boce.yun.common.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.gjp.dbsubmit.Token;

import boce.yun.base.BaseController;
import boce.yun.pojo.base.User;

@Controller
@RequestMapping("/user")
public class LoginController extends BaseController{


@RequestMapping("/index")
//@Token(save=true)
public ModelAndView index(String token){
if(log.isDebugEnabled()){
log.debug("用户使用了@Token");
}

ModelAndView mav = new ModelAndView("login");

return mav;
}

@RequestMapping("/login")
@Token(remove=true)
public ModelAndView userLogin(User user,String token,HttpServletRequest req){
if(log.isDebugEnabled()){
log.debug("用户开始登陆");
}

ModelAndView mav = new ModelAndView("main");
if(null !=user){
System.out.println(user.getUsername() +"---"+user.getPassword());
}
//获取session ,并且把user对象放入session
HttpSession session = req.getSession();
System.out.println("sessionId:"+session.getId());
session.setAttribute("user", user);



return mav;
}


/**
* 重复提交提示
* @return
*/
@RequestMapping("/error")
public ModelAndView error(){
ModelAndView mav = new ModelAndView("error");
return mav;
}


@RequestMapping("/logout")
public ModelAndView logout(HttpServletRequest req){
ModelAndView mav = new ModelAndView("login");
System.out.println(req.getRequestedSessionId());
User u =(User)req.getSession().getAttribute("user");
if(null !=u){
System.out.println(u.getUsername()+u.getPassword());
}else{
System.out.println("no user");
}


//session 失效
req.getSession().invalidate();


return mav;
}
}

猜你喜欢

转载自gjp014.iteye.com/blog/2372273
今日推荐