springboot- 在后台设置cookies,前台读取cookie

42 篇文章 6 订阅
18 篇文章 0 订阅

此方法存在问题,对于中文无法转换,哪位高手有办法,请回复下

1. 在controller设置cookie

在登录成功处添加如下:函数参数加上HttpServletResponse response

           Cookie cookie=new Cookie("name",name);
            response.addCookie(cookie);

具体登录内容如下:

 @RequestMapping("/login")
    public String gologin(String name,String password,Model model,HttpServletResponse response)
    {
        System.out.println("name="+name);
        /**
         * 使用Shiro编写认证操作
         */
        //1.获得subject
        Subject subject= SecurityUtils.getSubject();

        //2.封装用户数据
        UsernamePasswordToken token=new UsernamePasswordToken(name,password);

        //3. 执行登录方法
        try {
            subject.login(token);
            //登录成功
            System.out.println("name=登录成功"+name);
            //创建Cookie
            Cookie cookie=new Cookie("name",name);
            response.addCookie(cookie);
            return "redirect:/index";
        }
        catch (UnknownAccountException e)
        {
            //用户名不存在 ,登录失败
            model.addAttribute("msg","用户名不存在");
            System.out.println("name=用户名不存在 ,登录失败"+name);
            return "loginPage";

        }
        catch (IncorrectCredentialsException e)
        {
            //密码错误 ,登录失败
            model.addAttribute("msg","密码错误");
            System.out.println("name=密码错误 ,登录失败"+name);
            return "loginPage";
        }

    }

2. 在html页面获取cookies

(1)可以单独写一个js页面,比如aa.js,内容如下

function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}

(2)然后在html里引入js

<script language="javascript" type="text/javascript" src="/js/aa.js"></script>

(3)在html里面获取cookie

$(document).ready(function () {          
           alert(getCookie("name"));        
   });

3. 有的人的页面也可以在login页面进行配置setCookie

function setCookie(name,value)
{
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
 function getMyCookie(key){
		var val = "";

		// 对cookie操作
		var cookies = document.cookie;
		cookies = cookies.replace(/\s/,"");
		var cookie_array = cookies.split(";");
		for(i=0;i<cookie_array.length;i++){
			// yh_mch=lilei
			var cookie = cookie_array[i];
			var array = cookie.split("=");
			if(array[0]==key){
				val = array[1];
			}
		}

		return decodeURIComponent(val);
	}

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值