浅谈利用Cookie技术实现3天免登陆
2017-06-02 22:03
381 查看
开发过程中,有时候遇到3天或者7天免登陆的业务需求,考虑使用Cookie来实现。
业务逻辑:登陆成功时将登陆名和登录密码写入到Cookie.下次登陆的时候首先去从Cookie中找到登陆名登录密码,找到了再进行匹配;如果Cookie中不含有登陆名登录密码,说明未登录,需要登录。
Servlet代码如下:
private void dologin(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
if(username==null || password==null){
Cookie[] cookie = request.getCookies();
for (Cookie c : cookie) {
if(c.getName().equals("username")) {
username = c.getValue();
}else if(c.getName().equals("password")){
password = c.getValue();
}
}
}
if(username==null || password==null) {
request.getRequestDispatcher("login.jsp").forward(request, response);
} else {
for (User user : list) {
if(user.getUsername().equals(username) && user.getPassword().equals(password)) {
Cookie cookie1 = new Cookie("username", username);
Cookie cookie2 = new Cookie("password", password);
cookie1.setMaxAge(15);
cookie2.setMaxAge(15);
response.addCookie(cookie1);
response.addCookie(cookie2);
request.getRequestDispatcher("success.jsp").forward(request, response);
} else{
request.getRequestDispatcher("login.jsp").forward(request, response);
}
}
}
代码分析:
通过request.getCookies();可以得到cookie,返回的是一个数组,遍历数据。
Cookie cookie2 = new Cookie("password", password);设置cookie,键值对的形式
response.addCookie(cookie2),将cookie添加到response请求头中。
cookie2.setMaxAge(15);设置cookie的存活时间,单位是秒,3天=60*60*24*3
业务逻辑:登陆成功时将登陆名和登录密码写入到Cookie.下次登陆的时候首先去从Cookie中找到登陆名登录密码,找到了再进行匹配;如果Cookie中不含有登陆名登录密码,说明未登录,需要登录。
Servlet代码如下:
private void dologin(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
if(username==null || password==null){
Cookie[] cookie = request.getCookies();
for (Cookie c : cookie) {
if(c.getName().equals("username")) {
username = c.getValue();
}else if(c.getName().equals("password")){
password = c.getValue();
}
}
}
if(username==null || password==null) {
request.getRequestDispatcher("login.jsp").forward(request, response);
} else {
for (User user : list) {
if(user.getUsername().equals(username) && user.getPassword().equals(password)) {
Cookie cookie1 = new Cookie("username", username);
Cookie cookie2 = new Cookie("password", password);
cookie1.setMaxAge(15);
cookie2.setMaxAge(15);
response.addCookie(cookie1);
response.addCookie(cookie2);
request.getRequestDispatcher("success.jsp").forward(request, response);
} else{
request.getRequestDispatcher("login.jsp").forward(request, response);
}
}
}
代码分析:
通过request.getCookies();可以得到cookie,返回的是一个数组,遍历数据。
Cookie cookie2 = new Cookie("password", password);设置cookie,键值对的形式
response.addCookie(cookie2),将cookie添加到response请求头中。
cookie2.setMaxAge(15);设置cookie的存活时间,单位是秒,3天=60*60*24*3
相关文章推荐
- java - 利用cookie实现记住用户名方便之后登陆
- python利用selenium获取cookie实现免登陆
- JavaWeb_利用Cookie技术实现自动登录
- ssm实际项目中利用cookie实现快速登陆功能
- 利用session+application+cookie 实现单态登陆,且解决浏览器意外关闭的问题
- 利用selenium 3.7和python3添加cookie模拟登陆的实现
- 利用session技术实现 用户登陆 功能
- 利用cookie, session 和Filter实现简单的自动登陆
- node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
- 利用cookie实现登陆知网与抽屉网 基于session自动登录抽屉网 cookie与session区别
- Python爬虫利用cookie实现模拟登陆实例详解
- Django笔记-登陆、注册(利用cookie实现)
- Python爬虫基础——利用cookie实现模拟登陆
- asp.net 利用Cookie实现免登陆(c#)
- 利用P2P技术实现点对点聊天
- 利用HttpModuler实现WEB程序同一时间只让一个用户实例登陆