发表于: 2017-11-18 19:21:12

2 748


今天完成的事

使用DES对用户ID和登录时间加密

进行任务五第一步。


直接上代码吧。

@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login() {
return "12";
}

@RequestMapping(value = "/login",method = RequestMethod.POST)
public String Login(HttpServletRequest request, HttpServletResponse response,User user,Model model) throws Exception {

//定义一个时间,也是登陆时间,插进这个用户
    Long time=System.currentTimeMillis();
    user.setLogtime(time);
    logger.info("这个人的登录时间是"+time);
    //定义加密需要的token
    String s= user.getUsername() + "," + "" + time;
    //将这个字符串进行加密生成Token
    String Token=new DesUtil("gaomingda").encrypt(s);
    logger.info("拿到了Token!!!!!!!!!!!!"+Token);
    //保存到cookies
    Cookie cookie=new Cookie("Token",Token);
    //对cookies进行设置
    cookie.setMaxAge(60);
    cookie.setPath("/");
    //添加到请求
    response.addCookie(cookie);
    logger.info("账户名字"+user.getUsername()+"账户密码"+user.getPassword());
    //扔到service层去鉴定账号密码是不是和数据库的对应
    Boolean loginResult=userService.compareUser(user.getUsername(),user.getPassword());
    logger.info(loginResult);
    if(loginResult=true){
return "redirect:/index";//一个登陆成功的页面
    }else {
return "redirect:12";
    }



遇到的问题

对账户名和密码校对之后,如果和数据库的一样。那就跳转主页,不一样就保留在登陆页面。

写了一段这样的代码来判定。

但是我每一次输入错误的密码还是能跳到主页面。

以为重定向没理解透。。。

崩溃了到半夜1:37分。

发现。。。。。。。。。。。。

这里双等号才是做判断。。。。我写了一个等号等于赋值了。。。。。。

吃了没脑子的亏。

(败家玩意还不报错。)


收获

理解了一下resquest和respose的区别。

也是之前mvc掌握不熟练挖的坑。

 Request 和 Response 对象起到了服务器与客户机之间的信息传递作用。Request 对象用于接收客户端浏览器提交的数据,而 Response 对象的功能则是将服务器端的数据发送到客户端浏览器。

一、Request对象的五个集合:

QueryString:用以获取客户端附在url地址后的查询字符串中的信息。

    例如:stra=Request.QueryString ["strUserld"]

Form:用以获取客户端在FORM表单中所输入的信息。(表单的method属性值需要为POST)

    例如:stra=Request.Form["strUserld"]

Cookies:用以获取客户端的Cookie信息。

    例如:stra=Request.Cookies["strUserld"]

ServerVariables:用以获取客户端发出的HTTP请求信息中的头信息及服务器端环境变量信息。

    例如:stra=Request.ServerVariables["REMOTE_ADDR"],返回客户端IP地址

ClientCertificate:用以获取客户端的身份验证信息

    例如:stra=Request.ClientCertificate["VALIDFORM"],对于要求安全验证的网站,返回有效起始日期。

二、Response对象

    Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应。Response对象提供了一个数据集合cookie,它用于在客户端写入cookie值。若指定的cookie不存在,则创建它。若存在,则将自动进行更新。结果返回给客户端浏览器。

    语法格式:Response.Cookies(CookieName)[(key)|.attribute]=value。这里的CookiesName是指定的Cookie的名称,如果指定了Key,则该Cookie就是一个字典,Attribute属性包括Domain,Expires,HasKeys,Path,Secure。

response的方法:

    Write:向客户端发送浏览器能够处理的各种数据,包括:html代码,脚本程序等。

    Redirect:response.redirect("url")的作用是在服务器端重定向于另一个网页。

    End:用来终止脚本程序。

    Clear:要说到Clear方法,就必须提到response的Buffer属性,Buffer属性用来设置服务器端是否将页面先输出到缓冲区。语法为:Response.Buffer=True/False

    Flush:当Buffer的值为True时,Flush方法用于将缓冲区中的当前页面内容立刻输出到客户端。

明天的计划

准备小课堂


返回列表 返回列表
评论

    分享到