(四)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 ...
随机推荐
- Hibernate Annotation (…
引自:http://www.cnblogs.com/hongten/archive/2011/07/20/2111773.html 进入:http://www.hibernate.org 说明文档: ...
- ThinkPHP隐藏index.php出现No input file specified的解决方法
因为在Fastcgi模式下,php不支持rewrite的目标网址的PATH_INFO的解析 ThinkPHP运行在URL_MODEL=2时,会出现 No input file specified.的情 ...
- apache配置中的小细节
configuration error: couldn’t perform authentication错误的解决办法 configuration error: couldn’t perform au ...
- FormsAuthentication.Signout不能清楚服务器端cookie
具体信息可以参考文章 https://support.microsoft.com/en-us/help/900111/the-formsauthentication.signout-method-do ...
- sqlserver2012——EXCEPT差查询
代表第一个select查询结果与第二个select查询结果去除相交后的数据
- C++ BYTE、WORD与DWORD类型
在VS中,BYTE与WORD,DWORD本质上都是一种无符号整型,它们在WINDEF.H中被定义,定义如下: typedef unsigned char BYTE;typedef unsi ...
- Vue Study [1]: Vue Setup
Description The article for vue.js Setup. Original post link:https://www.cnblogs.com/markjiang7m2/p/ ...
- 启动Eclipse时,出现 “Failed to load the JNI shared library "C:\Program Files\java\jdk1.7.....\jvm.dll"
原因1:给定目录下jvm.dll不存在. 解决方法:(1)重新安装jre或者jdk并配置好环境变量. (2)copy一个jvm.dll放在该目录下. 原因2:eclipse的版本与jre或者jdk版本 ...
- linux下提示/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found 解决办法
1.查看gcc版本中包含哪些库. strings /usr/lib64/libstdc++.so.6 | grep GLIBC GLIBCXX_3. GLIBCXX_3.4.1 GLIBCXX_3.4 ...
- Python网络编程之基础
计算机网络基础 网络到底是什么?计算机之间如何通信的? 早期:联机 以太网:局域网与交换机 ******广播 主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发, 所 ...