发表于: 2017-08-30 20:41:13
2 1042
今天完成的事情:
1.在token里面多记录了一个时间。
就是用System.currentTimeMillis();
2.把这个token传到cookie里面:
.png)
然后直接在controller里完成
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(HttpServletRequest request, HttpServletResponse response,User4 user,Model model)throws ServletException,IOException {
try {
DesUtil des = new DesUtil("Java");
String str=user.getUser()+user.getLogTime();
String Token = des.encrypt(str);
String username=des.decrypt(Token);
System.out.print(username);
Cookie cool = new Cookie("Token", Token);
cool.setMaxAge(60);
response.addCookie(cool);
loginType = userService1.login(user.getUser(), user.getPassword());
System.out.print("这就是Token"+Token);
} catch (Exception e) {
e.printStackTrace();
}
if(loginType == true)
return "redirect:/10";
else
return "redirect:/1";
.png)
第一句是吧token穿进去
第二句是过期时间为一分钟。
第三句是吧这个cook提交上去,一开始忘了提交,所以一直没有cookie。
遇到一个问题。本来是看了一个教程,教程里提供了三个方法,用来创建cookie 检查 和删除
.png)

但是上面那句报错,必须要换成下面那句。不知道为什么。是什么版本的问题么,明天我再好好查查
然后就在controller 直接创建cookie了。
3.完成拦截器的设置:
.png)

然后还可以直接在mvc:interceptors 定义一个bean 那样的话就是拦截所有的请求
public class SpringMVCInterceptor implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
Cookie[] cookie = httpServletRequest.getCookies();
System.out.println("这是拦截器");
for(int i=0;i<cookie.length;i++){
if(cookie[i].getName().equals("Token")){
return true;
}
}
httpServletResponse.sendRedirect("/1");
return false;
}
然后看了一下集合的遍历
Map遍历方式:
1、通过获取所有的key按照key来遍历
//Set<Integer> set = map.keySet(); //得到所有key的集合for (Integer in : map.keySet()) { String str = map.get(in);//得到每个key多对用value的值}
2、通过Map.entrySet使用iterator遍历key和value
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();while (it.hasNext()) { Map.Entry<Integer, String> entry = it.next(); System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); }
3、通过Map.entrySet遍历key和value,推荐,尤其是容量大时
for (Map.Entry<Integer, String> entry : map.entrySet()) { //Map.entry<Integer,String> 映射项(键-值对) 有几个方法:用上面的名字entry //entry.getKey() ;entry.getValue(); entry.setValue(); //map.entrySet() 返回此映射中包含的映射关系的 Set视图。 System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); }
4、通过Map.values()遍历所有的value,但不能遍历key
for (String v : map.values()) {
System.out.println("value= " + v);
}
System.out.println("value= " + v);
}
List遍历方式:
第一种:
for(Iterator iterator = list.iterator();iterator.hasNext();){ int i = (Integer) iterator.next(); System.out.println(i); }
第二种:
Iterator iterator = list.iterator();while(iterator.hasNext()){ int i = (Integer) iterator.next(); System.out.println(i); }
第三种:
for (Object object : list) { System.out.println(object); }
第四种:
for(int i = 0 ;i<list.size();i++) {
int j= (Integer) list.get(i);
System.out.println(j);
int j= (Integer) list.get(i);
System.out.println(j);
}
也得好好看看基础。
然后就实现了只有/u的链接能进去,否则就转到登录失败返回的界面
然后看了任务要求才发现要MD5加盐,有个疑问,这里的MD5加盐是要把用户名和密码用md5加密之后放到token里面么还是?
明天计划的事情:
准备小课堂,完成注册功能,完成加盐,完成任务五
遇到的问题:
评论