JSP 通过cookie实现表单记住账户密码自动填充功能
2016-10-27 20:18
976 查看
第一次写博客如果表述不清的地方敬请见谅= =不过讲道理的话应该也不会有人看到哈哈,开始写博客也是希望给自己养成一个写博客的好习惯,记录下学习过程中的心得体会。虽然现在很菜!但是说不定以后。。。。还是很菜呢。。好了不瞎逼逼了开始进入正题。
主要内容是通过jsp内置对象 response以及 request来获取或写入cookie从而实现表单自动填充的功能也就是我们平时遇见的“记住密码”。
主要分为两个页面:
登录页面
登录成功页面
部分代码如下:
期间有几个问题总结一下:
1.对于checkbox判断已勾选有三种写法分别如下:
其中第一种写法是不行的,原因是虽然getParameter方法返回了String对象且字符串为 “selected”但是所处的内存地址不同所以 “==”返回的结果为false,呃为什么我会纠结于这么无聊的问题呢因为我专门回java se试了一下发现在java se的环境下直接使用”==”是没问题的就是单纯比较字符串是否相同的orz,所以我个人认为”==”返回的结果跟环境有关系所以遇到字符串比较还是使用equals比较稳定。
2.一开始没有勾选记住密码仍会记住密码,找了半天原因最后发现是最后将cookie的生存期限设为0之后还得重洗addcookie才可以。由于java对象是址传递所以我原来以为不需要重新addcookie就可以= =,根据这个现象我猜可能是只有在addcookie之前设置的maxage才有效吧。。纯属个人猜测如果不对请大神指正。
主要内容是通过jsp内置对象 response以及 request来获取或写入cookie从而实现表单自动填充的功能也就是我们平时遇见的“记住密码”。
主要分为两个页面:
登录页面
登录成功页面
部分代码如下:
<body> <% String username = ""; String password = ""; String s; Cookie [] cookies =request.getCookies(); for (Cookie cookie:cookies) { s=cookie.getName(); //通过getName方法获得cookie的名称 if (s.equals("username")) { if (cookie.getValue()!=null) { username=username+cookie.getValue(); //通过getValue方法获得cookie的值 } } else if (s.equals("password")) { if (cookie.getValue()!=null) { password=password+cookie.getValue(); } } } %> <form action="login.jsp" method="post"> 用户登录 <br /> <!-- 使用通过cookie获取的字符串自动填写表单内容 --> 用户名:<input type="text" name="username" value="<%=username %>" /> <br /> 密码 : <input type="password" name="password" value="<%=password %>" /> <br /> <input type="checkbox" name="checkbox" value="selected" />记住密码 <br /> <input type="submit" value="登录" /> </form> </body>
<body> <h1>登录成功!</h1> <% //if语句用户是否勾选了记住密码选项 if (request.getParameter("checkbox")!=null) { //记住密码:生成新的cookie用来保存账号密码 Cookie username = new Cookie("username",request.getParameter("username")); username.setMaxAge(1296000);//设置cookie最长保存时间15天 Cookie password = new Cookie("password",request.getParameter("password")); password.setMaxAge(1296000); //覆盖旧的cookie response.addCookie(username); response.addCookie(password); } else { Cookie [] cookies = request.getCookies(); Cookie username=null; Cookie password=null; //寻找是否已经存在cookie for (Cookie cookie:cookies) { if (cookie.getName().equals("username")) { username=cookie; } else if (cookie.getName().equals("password")) { password=cookie; } } //若cookie存在则通过设置cookie保存时间为0的方法来删除cookie if (username!=null) { username.setMaxAge(0); response.addCookie(username); } if (password!=null) { password.setMaxAge(0); response.addCookie(password); } } %> </body>
期间有几个问题总结一下:
1.对于checkbox判断已勾选有三种写法分别如下:
if (request.getParameter("checkbox")=="selected") {
if (request.getParameter("checkbox").equals("selected")) {
if (request.getParameter("checkbox")!=null) {
其中第一种写法是不行的,原因是虽然getParameter方法返回了String对象且字符串为 “selected”但是所处的内存地址不同所以 “==”返回的结果为false,呃为什么我会纠结于这么无聊的问题呢因为我专门回java se试了一下发现在java se的环境下直接使用”==”是没问题的就是单纯比较字符串是否相同的orz,所以我个人认为”==”返回的结果跟环境有关系所以遇到字符串比较还是使用equals比较稳定。
2.一开始没有勾选记住密码仍会记住密码,找了半天原因最后发现是最后将cookie的生存期限设为0之后还得重洗addcookie才可以。由于java对象是址传递所以我原来以为不需要重新addcookie就可以= =,根据这个现象我猜可能是只有在addcookie之前设置的maxage才有效吧。。纯属个人猜测如果不对请大神指正。
相关文章推荐
- 通过js来设置cookie和读取cookie,实现登陆时记住密码的功能
- Android通过SharedPreferences实现自动登录记住用户名和密码功能
- javaWeb的session和cookie实现记住密码自动登录功能简单实例
- Jsp开发中使用Cookie实例(实现记住密码功能)
- 通过js来设置cookie和读取cookie,实现登陆时记住密码的功能
- 通过js来设置cookie和读取cookie,实现登陆时记住密码的功能
- 通过jquery.cookie.js实现记住用户名、密码登录功能
- 通过jquery.cookie.js实现记住用户名、密码登录功能
- 通过jquery.cookie.js实现记住用户名和密码的功能
- jsp+servlet+Cookie实现记住密码功能
- 通过js来设置cookie和读取cookie,实现登陆时记住密码的功能 base64加密
- jsp使用cookie实现记住密码的功能
- jsp使用cookie实现记住密码的功能
- 通过jquery.cookie.js实现记住用户名、密码登录功能
- Flex中如何实现类似像QQ登录框中那种“记住密码”、“自动登录”功能,还有如何实现文本框中记录最后一次输入的值?
- 如何利用js操作cookie实现记住密码功能
- JSP通过Cookie实现自动登录
- 业务系统实现记住密码和自动登录功能
- 通过js当中的cookie实现可以记住内容的表单
- cookie、session及实现记住密码,自动登录