Java中session存储Users对象实现记住密码

网友投稿 240 2022-11-06


Java中session存储Users对象实现记住密码

之前做过cookie实现记住密码,这次换成session记住密码又做了一遍,有很多收获。

本次博客分为两部分。一部分是cookie和session的区别(面试经常被问道);另一部分是sesion实现记住密码,在jsp页面和Controller页面的代码编写。

一、cookie和session区别

区别:

1.cookie是浏览器端技术;将数据保存到浏览器中,不安全;不可以保存中文保存时编码: URLEncoder.encode();取值时解码:URLDecoder.decodhttp://e();。

2.session是服务器端技术;将数据保存到服务器中,当访问servlet时,服务器创建session对象同时会向浏览器写入一个sessionId保存到cookie中,当浏览器关闭,session里面的数据没有删除,而是保存sessionId的cookie丢失因此找不到数据,安全。

相同:

两者作用范围都是一次会话(浏览器开启到关闭)有效。

二、session实现记住密码

分为3步。

1.jsp页面布局

默认rem选择框是选中状态

${flag }

记住密码

2.controller层逻辑处理

我的代码有两处用到session,这里只看第二处即可。

//2.登录按钮按下后 当rem被选中,且密码正确时,将账号密码这个对象存入session

//5.1登录

@RequestMapping("login")

public String login(String uPhone,String uPwd,String rem,Model model,HttpServletResponse response,HttpServletRequest request){

HttpSession session = request.getSession();

String flag = "1";

String uId = us.selectUsersByPhone_PwdService(uPhone, uPwd);

//判断如果账号密码不存在 返回登录页面;存在,跳转到首页

if(uId==null){

flag="密码错误";

request.setAttribute("flag", flag);

return "register";

}else{

Users u1 = us.selectUsersByIdService(uId);

//1.只要登录成功 就将users对象存入session中,为之后的过滤器使用

session.setAttribute("handlerInterceptorSession", u1);

//2.登录按钮按下后 当rem被选中,且密码正确时,将账号密码存入session

if(rem.equals("on")){

Users u2 = new Users(uPhone,uPwd);

session.setAttribute("remSession", u2);

}

return "index";

}

}

3.jsp页面补充

这里主要看//5.当光标离开后调用记住密码的功能

逻辑是:用户输入账号光标离开后,从session中取值,如果账号在session中存在,则获取账号对应的密码,将密码赋值给输入框。(前提是:rem选择框是选中状态,在1.jsp页面布局里面就设置好了)


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:[leetcode] 125. Valid Palindrome
下一篇:[leetcode] 80. Remove Duplicates from Sorted Array II
相关文章

 发表评论

暂时没有评论,来抢沙发吧~