发表于: 2017-10-11 23:44:21
1 692
今天完成的事
完成cookie免登录
判断cookie的逻辑
//获取cookie到
Cookie[] cookies = request.getCookies();
String s1 = null ;
String s2 = null ;
//判断是否存在cookie
if(cookies != null){
//循环查找name为user的cookie
for(int i = 0;i<cookies.length;i++){
Cookie cookie = cookies[i];
//如果name为user,则取得cookie的value
if(cookie.getName().equals("user")) {
//把cookie的值声明为mes变量
String mes = cookie.getValue();
System.out.println("Cookie的值为"+mes);
//以逗号拆分储存着账户密码的值为一个数组
String[] array = mes.split(",");
s1 = array[0];
s2 = array[1];
}
}
}
log.info("拆分后的cookie的值:"+s1+"-"+s2);
//把两个变量使用登录验证方法进行验证
boolean loginType = loginService.login(s1,s2);
if (loginType) {
return "home";
}
else {
return "/jsp/login";
}
使用String.split分割了cookie的赋值给S1(对应账户),S2(对应密码),并作为值调用验证方法验证
测试可以看到没有登录验证(/a/login/verify)就直接进入了/home页面
把对cookie的增删改查方法封装到了一个工具类中
把总是搞不清楚的声明和定义,实例化和初始化的区别查了一下
声明是向编译器介绍名字-标识符。它告诉编译器这个函数或变量在某处可以找到,它的模样像什么。
而定义是说:“在这里建立变量”或“在这里建立函数”。它为名字分配存储空间。无论定义的是函数还是变量,编译器都要为他们在定义点分配存储空间。对于变量,编译器确定变量的大小,然后在内存中开辟空间来保存数据,对于函数,编译器会生产代码,这些代码最终也要占用一定的内存。
基本类型变量的声明和定义(初始化)是同时产生的;而对于对象来说,声明和定义是分开的。
实例化,一般是由类创建对象。比如有class A{ }; A a;//这就是实例化
初始化,有很多情况,如函数的初始化,类里成员的初始化等,即给一些变量赋予初始值,那些变量已经存在,只是赋值,不像实例化那样构造一个实例的时候需要在内存中开辟空间。
遇到的问题:最初是在if语句块中定义了两个变量是s1 s2 后来发现在语句块外面不能使用这两个变量,之后在改成方法内定义这两个变量 在if语句块中给变量赋值成功使用这两个变量
一会儿写完日报看看书上有关成员变量的作用域的知识
写封装cookie的时候在网上看到了一个语法 StrUtils.isEmptyArray() 这个博主的文章是今年7月份的,这个语句却用不了 网上也很少有这个语法的资料 很好奇 师兄你看看你学过吗?
明天的计划:
使用cookie封装类完成免登录
开始尝试写session了
收获:终于是把cookie啃下来了 三天啊 希望session能快一些
任务进度:任务五步骤一
任务开始时间:2017-10-2
预计demo时间:2017-10-10
延期5天至15号
禅道:http://task.ptteng.com/zentao/project-task-276.html
评论