(四)SpringMVC之使用cookie实现记住密码的功能
注意:因为实现记住密码的功能需要用到json,所以需要加上这条语句:
<script type="text/javascript" src="scripts/jquery.min.js"></script>
一、编写表单
<form action="login" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="userName" id="userName" onkeyup="rememberCheck(this.value)"/></td>
<!--onkeyup是每次对文本框的操作如输入一个字符,都会进行rememberCheck()函数的调用-->
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="password" id="password"/></td>
</tr>
<tr>
<td>记住密码<input type="checkbox" name="check"></td>
</tr>
<tr>
<td><input type="submit"></td>
</tr>
</table>
</form>
</body>
二、编写js函数
<script type="text/javascript">
<!--这个函数就是在userName的文本框中每输入一个字符就会调用getCookie.action来查找是否有cookie记录下数据-->
<!--success中的功能就是把返回到的data自动输出到文本框中-->
function rememberCheck(string){
$.ajax({
type:"POST",
url: "getCookie.action",
dataType:"json",
data:{
userName:string,
},
success:function(data){
$("#userName").val(data.userName);
$("#password").val(data.password);
},
error:function() {
$("#password").val("");
}
});
};
</script>
三、SpringMVC中的Controller
@RequestMapping(value="/login",method=RequestMethod.POST)
public String login(UserInfo u,Model model,HttpServletResponse response, HttpServletRequest request) throws UnsupportedEncodingException{
...
if(u.getUserName().equals(user.getUserName())&&u.getPassword().equals(user.getPassword())) {
model.addAttribute("user",user);
if(request.getParameter("check")!=null)
addCookie(u.getUserName(), u.getPassword(), response, request);
return "index";
}
...
}
四、添加cookie的方法(可直接写在SpringMVC的Controller中)
/**
* 添加Cookie
* @param userName
* @param password
* @param response
* @param request
* @throws UnsupportedEncodingException
*/
public static void addCookie(String userName,String password,HttpServletResponse response, HttpServletRequest request) throws UnsupportedEncodingException{
//创建cookie
Cookie nameCookie = new Cookie(userName, password);
nameCookie.setPath(request.getContextPath()+"/");//设置cookie路径
//设置cookie保存的时间 单位:秒
nameCookie.setMaxAge(7*24*60*60);
//将cookie添加到响应
response.addCookie(nameCookie);
}
五、获取cookie的Controller
/**
* 获取到Cookie
* 先把所有的Cookie获取到,然后遍历cookie,如果有符合项就取出来,用map装起来发到页面中
* @param userName
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value="/getCookie",method=RequestMethod.POST)
public Map<String, String> initCookie(String userName, HttpServletRequest request){
Cookie[] cookie = request.getCookies();
Map<String, String> map = new HashMap<>();
for(Cookie c : cookie) {
if(c.getName().equals(userName)) {
String password = c.getValue();
map.put("userName", userName);
map.put("password", password);
return map;
}
}
return null;
}
(四)SpringMVC之使用cookie实现记住密码的功能的更多相关文章
- Cookie实现记住密码的功能
一.什么是Cookie cookie是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段.Cookie的目的就是为用户带来方便,为网站带来增值.虽然有着许多误传,事实上Cookie并不会造成严重 ...
- JavaWeb学习----Cookie实现记住密码的功能
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- jquery.cookie.js 操作cookie实现记住密码功能的实现代码
jquery.cookie.js操作cookie实现记住密码功能,很简单很强大,喜欢的朋友可以参考下. 复制代码代码如下: //初始化页面时验证是否记住了密码 $(document).ready( ...
- jsp-4 用cookie实现记住密码
jsp-4 用cookie实现记住密码 这次就有点简单了 基本是jsp-3的代码但是有些修改 public void login(HttpServletRequest req, HttpServlet ...
- 用cookie实现记住密码
jsp-4 用cookie实现记住密码 这次就有点简单了 基本是jsp-3的代码但是有些修改 public void login(HttpServletRequest req, HttpServlet ...
- 记住密码功能 JS结合JQuery 操作 Cookie 实现记住密码和用户名!
// 记住密码功能 JS结合JQuery 操作 Cookie 实现记住密码和用户名! var username = document.getElementById("username&quo ...
- MiniTwitter记住密码等功能实现
一.SharedPreferences的用法:(相关实现功能的只是了解) 由于SharedPreferences是一个接口,而且在这个接口里没有提供写入数据和读取数据的能力.但它是通过其Editor接 ...
- cookie实现记住密码
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- 【原创】js中利用cookie实现记住密码功能
在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: HttpServletRequest request HttpServletResponse res ...
随机推荐
- day8 服务器
XML约束 XML约束要求:大家能够看懂约束内容,根据约束内容写出符合规则的xml文件. 2.1 引入 XML语法: 规范的xml文件的基本编写规则.(由w3c组织制定的) XML约束: 规范XML文 ...
- 利用msfvenom制作木马程序(你可以得到她的一切)
实验环境: 虚拟机:kali (攻击机) 192.168.1.2 虚拟机:windwos 2003 (靶机) 192.168.1.100 1. 制作木马 说明: -p payl ...
- python中出现 IndentationError:unindent does not match any outer indentation level
python中出现IndentationError:unindent does not match any outer indentation level 今天在网上copy的一段代码,代码很简单,每 ...
- android studio 生成引用arr
http://blog.csdn.net/luyanjun07/article/details/51558151 1.背景 jar:无法包含资源文件 library:可以包含资源文件 但是引入显得比较 ...
- 51nod1108(曼哈顿距离)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1108 题意:中文题诶- 思路:曼哈顿距离,题目没要求所求点要在 ...
- codevs1052 地鼠游戏
1052 地鼠游戏 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不但学习刻苦,而且善于经常总结.完善自己的学习方法,所以他总能在 ...
- IT兄弟连 JavaWeb教程 创建异步请求对象
异步请求对象:XMLHttpRequest对象,通过该对象向服务器发送异步请求.它是异步请求的技术,所有的现代浏览器(IE7+.FireFox.Chrome.Safari以及Opera)都支持,老版本 ...
- 《SQL 进阶教程》 case:在 UPDATE 语句里进行条件分支
1.对当前工资为30万日元以上的员工,降薪10%:2.对当前工资为25万日元以上且不满28万日元的员工,加薪20% update salaries set salary = case when sal ...
- [題解](水)luogu_P1372又是畢業季1
被入門難度的題虐...... 作者: kkksc03 吉祥物 更新时间: 2013-07-14 19:00 在Ta的博客查看 78 By lzn 数论水题一道. 首先,若可能的最大公约数为a ...
- 将RegEx(正则表达式提取器)与JMeter一起使用
JMeter的,最流行的开源性能测试工具,可以工作正则表达式,用正则表达式提取.正则表达式是一种用于通过使用高级操作提取文本的必需部分的工具.正则表达式在测试Web应用程序时很流行,因为它们可用于验证 ...