注意:因为实现记住密码的功能需要用到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实现记住密码的功能的更多相关文章

  1. Cookie实现记住密码的功能

    一.什么是Cookie cookie是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段.Cookie的目的就是为用户带来方便,为网站带来增值.虽然有着许多误传,事实上Cookie并不会造成严重 ...

  2. JavaWeb学习----Cookie实现记住密码的功能

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. jquery.cookie.js 操作cookie实现记住密码功能的实现代码

    jquery.cookie.js操作cookie实现记住密码功能,很简单很强大,喜欢的朋友可以参考下.   复制代码代码如下: //初始化页面时验证是否记住了密码 $(document).ready( ...

  4. jsp-4 用cookie实现记住密码

    jsp-4 用cookie实现记住密码 这次就有点简单了 基本是jsp-3的代码但是有些修改 public void login(HttpServletRequest req, HttpServlet ...

  5. 用cookie实现记住密码

    jsp-4 用cookie实现记住密码 这次就有点简单了 基本是jsp-3的代码但是有些修改 public void login(HttpServletRequest req, HttpServlet ...

  6. 记住密码功能 JS结合JQuery 操作 Cookie 实现记住密码和用户名!

    // 记住密码功能 JS结合JQuery 操作 Cookie 实现记住密码和用户名! var username = document.getElementById("username&quo ...

  7. MiniTwitter记住密码等功能实现

    一.SharedPreferences的用法:(相关实现功能的只是了解) 由于SharedPreferences是一个接口,而且在这个接口里没有提供写入数据和读取数据的能力.但它是通过其Editor接 ...

  8. cookie实现记住密码

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  9. 【原创】js中利用cookie实现记住密码功能

    在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: HttpServletRequest request HttpServletResponse res ...

随机推荐

  1. WPF TabControl SelectionChanged 重复执行的问题

    很邪门的问题,我曾经都感觉是微软的bug了. 问题是这样的:在我的tabcontrol下的tabitem中有一个combobox控件,由于一些原因,需要执行tabcontrol的SelectionCh ...

  2. 使用军哥的lnmp配置虚拟主机,需要注意的是要配置hosts文件

    #使用军哥的lnmp配置虚拟主机,需要注意的是要配置hosts文件(这一点官方没有讲到)具体方法:1.修改hosts文件sudo vim /etc/hosts 2.在hosts文件中新增一行(这里类似 ...

  3. C/C++ Sleep(0)

    Sleep(0) 的意义是放弃当前线程执行的时间片,把自身放到等待队列之中.这时其它的线程就会得到时间片进行程序的程序.Sleep(0)能够降低当前线程的执行速 度,比如:现在系统中有100个线程(先 ...

  4. lightoj1010【规律】

    思路: 根据案例的规律其实已经猜的差不多了,answer=n*m/2; 有一条边是1的情况,也很好判断,answer=n*m; 就是有一条边是2的时候比较隐秘:是连续2*2一块可以填,然后2*2不填, ...

  5. ugui获取text宽

    http://www.xuanyusong.com/archives/3587 void Start () { Font font = Resources.Load<Font>(" ...

  6. 3DMAX可编辑多边形常用命令-桥

    桥命令可以连接连个面 下图两个cube(可编辑多边形)已经被附加到一起,选中相对的两个面,点击桥 结果

  7. [NOIP2014]子矩阵

    1812. [NOIP2014]子矩阵 http://www.cogs.pro/cogs/problem/problem.php?pid=1812 ★★★   输入文件:submatrix.in   ...

  8. IT兄弟连 Java语法教程 Java的发展历程

    只有少数几种编程语言对程序设计带来过根本性的影响.其中,Java的影响由于迅速和广泛而格外突出.可以毫不夸张的说,1995年Sun公司发布的Java1.0给计算机程序设计领域带来了一场变革.这场变革迅 ...

  9. ES6新特性使用小结(一)

    一.let const 命令 'use strict'; /*function test(){ //let a = 1; for(let i=1;i<3;i++){ console.log(i) ...

  10. echart title属性

    title http://echarts.baidu.com/echarts2/doc/doc.html#Title 标题,每个图表最多仅有一个标题控件,每个标题控件可设主副标题. 名称 默认值 描述 ...