当浏览器禁用了cookie,java实现传递JSESSIONID

当浏览器禁用了cookie,java实现传递JSESSIONID,代码如下:

代码块

package com.demo.springmvc.controller;

import java.io.IOException;
import java.io.PrintWriter;

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

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 /**
  * 测试当浏览器关闭cookie 后
  * java 如何获取session
  * @author lz
  *
  */
@Controller
@RequestMapping("/test")
public class CookieSessionController {

    @RequestMapping("/createSession")
    public void hello4(HttpServletRequest request,HttpServletResponse response) throws IOException{
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        //request 获取session  
        HttpSession session = request.getSession();
        session.setAttribute("sessionAttr","当浏览器禁用了cookie,"
                + "利用response.encodeRedirectURL获取session的属性");
        String seesionId = "保存成功,当前sesionId:"+session.getId();
        //添加sessionID到cookie中
        Cookie cookie = new Cookie("JSESSIONID", session.getId());  
        //设置cookie存活时间,数字越大cookie保存时间越长
        cookie.setMaxAge(Integer.MAX_VALUE);
        //添加cookie到浏览器
        response.addCookie(cookie);
        out.println(seesionId);
        String url = response.encodeRedirectURL("/test/getSession");
        out.println("<a href='"+url+"'>hello</a>");
    }

    @RequestMapping("/getSession")
    public void hello(HttpServletRequest request,HttpServletResponse response) throws IOException {         
        response.setContentType("text/html;charset=utf-8"); 
        HttpSession session = request.getSession();

        String sessionAttr = (String)request.getSession().getAttribute("sessionAttr");  
        PrintWriter writer = response.getWriter();
        writer.write("当前sessionId:"+session.getId());   
        writer.write(sessionAttr);   
        PrintWriter out = response.getWriter();
        String url = response.encodeRedirectURL("/test/createSession");
        out.println("<a href='"+url+"'>createSession</a>");
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值