此方法存在问题,对于中文无法转换,哪位高手有办法,请回复下
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
(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