(四)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 ...
随机推荐
- 51nod1112(xjb)
題目鏈接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1112 題意:中文題誒- 思路:對於函數 f(x) = a + ...
- 为产品接入微信支付解决方案(公司&个人)
微信支付个人及公司的区别 H5支付:主要实现的效果是在非微信内网页中点击支付,拉起微信APP内的微信支付进行付款. APP支付:主要实现的效果是在APP内部点击支付,拉起微信APP内的微信支付进行付款 ...
- java 多线程下载文件并实时计算下载百分比(断点续传)
多线程下载文件 多线程同时下载文件即:在同一时间内通过多个线程对同一个请求地址发起多个请求,将需要下载的数据分割成多个部分,同时下载,每个线程只负责下载其中的一部分,最后将每一个线程下载的部分组装起来 ...
- [NOI2002] 贪吃的九头蛇
考虑任意一种划给大头的方案,两端的都给了大头(bel=1)的边产生难受值,剩下n-k个果子分给m-1个头,当m-1=1时,两端都给了这个小头也产生难受值:而m-1>1的情况要好看的多,贪心的,因 ...
- according to tld or attribute directive in tag file attribute *** does not accept any expressions
http://stackoverflow.com/questions/13428788/according-to-tld-or-attribute-directive-in-tag-file-attr ...
- sql 查询重复数据
select user_name,count(*) as count from comm_user group by user_name having count>1;
- DRF教程8-过滤
在写后端api时,经常需要使用各种过滤条件,可以使用Q对查询集进行过滤,这里介绍一个新玩意儿 以下是基础文档 https://django-filter.readthedocs.io/en/maste ...
- 16.创建与操纵表--SQL
一.新建表 利用CREA TE TA BLE创建表,必须给出下列信息: 新表的名字,在关键字CREA TE TA BLE之后给出: 表列的名字和定义,用逗号分隔: 有的DBMS还要求指定表的位置. C ...
- Codeforces 319D Have You Ever Heard About the Word?
首先会想到|x|是不递减的. 于是可以枚举长度L. 再每个L设一个断点,xx必定经过两个断点. 两两断点间求最长公共前后缀,这里用hash+二分会快. 然后一波扫过去就好了. 如果找到了,hash就要 ...
- PHPstudy安装redis扩展
PHPstudy安装redis扩展 第一步:查看PHP版本(phpinfo) 第二步:下载所需的扩展(http://pecl.php.net/package/redis . http://wi ...