看图说需求:
每次登录之前,浏览器会帮我们记录好用户名和密码。目的就是实现这个。
这个实现过程一共分为4个步骤
①拿到这个表单的值。
- 在那个表单让用户设置值?
其实是我们手动来设置的。我们手动设置值是1,将来如果用户勾选了,这个表单的name值就可以拿到。
- 获取到用户输入的选择。
获取值直接使用request就可以了,没什么难的。
//获取复选框的值
String remember = req.getParameter("remember");
②判断用户是否选中该复选框。
直接判断就可以了
if ("1".equals(remember)){ }
③如果用户选中了就设置cookie
好,现在用户想要浏览器帮忙记住用户名和密码,那我们该怎么做?
我们的使用的核心方法就是将用户的数据存在cookie
中,将来从cookie里面去取
- 创建cookie对象,创建的时候是带着值的
//创建cookie对象
Cookie c_username = new Cookie("username", username);
Cookie c_password= new Cookie("password", password);
- 持久化存储cookie
//持久化存储
c_username.setMaxAge(60*60*24);
c_password.setMaxAge(60*60*24);
- 发送到浏览器
//发送到浏览器
resp.addCookie(c_username);
resp.addCookie(c_password);
④将数据进行显示
这一部分确实简单到挺难想象的,因为直接给我们提供好了。
说白了就是直接使用了cookie.key.value
。这个地方因为在jsp里面用的是${}
,我还把写SQL的#{}
,搞混了,属实不因该啊。
<p>Username:<input id="username" name="username" type="text" value="${cookie.username.value}"></p>
<p>Password:<input id="password" name="password" type="password" value="${cookie.password.value}"></p>
总结
- 怎么取到用户属于的值?
在复选框里面设置一个value= 1
,去判断这个name属性
是不是等于1就可以了
- 核心做法是什么?
存到cookie
里面。但是也要主意这里面有三个
步骤
3.怎么把用户的数据回显到登录界面?
使用value="${cookie.username.value}"
,输出就可以了