Cookie实现登录记住密码
Cookie实现记住登录密码,用户可以自由选择是否记住密码,或者用户之前选择记住了,但是某一次又不想记住了,需要将之前对应的Cookie删除掉
Cookie相当于map 也是键值对的形式,但是并不相同
response.addCookie(Cookie对象名)才会生效;
表单提交用的get 方便地址栏查看数据变化,
登录Servlet:
package ni.jun.yang.servlet; import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; @WebServlet("/LoginServlet1")
public class LoginServlet1 extends HttpServlet {
private static final long serialVersionUID = 1L; public LoginServlet1() { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
Cookie [] cookies = request.getCookies();
//声明用户名和密码为空字符串
String uName = "";
String uPsw = "";
//获取根据名字获取对应的cookie 的值
if(cookies!=null){
for(Cookie x : cookies){
if(x.getName().equals("userName")){
uName = x.getValue();
}else if(x.getName().equals("userPsw")){
uPsw = x.getValue();
}
}
} out.println("<html><head><meta charset='utf-8'><title>Cookie</title>");
out.println("</head>");
out.println("<body>");
// input 标签的value 为声明的字符串,没有cookie 就是空字符串,有cookie就是获取到的用户名和密码
out.println("<form action='ResultServlet' method='get'>");
out.println("用户名:<input type='text' name='userName' value=" + uName + ">");
out.println("密码:<input type='password' name='userPsw' value=" + uPsw + ">");
out.println("用户名:<input type='checkbox' name='remember' ");
//如果用户名和密码都获取到内容了,就将复选框默认选中记住密码,如果没有cookie,则不会默认选中,需要手动选择
if (uName != "" && uPsw != "") {
out.println("checked='checked'");
}
out.println(" >记住密码");
out.println("<input type='submit' value='登录'>");
out.println("</form"); out.println("</body>");
out.println("</html>"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response);
} }
数据处理代码:
package ni.jun.yang.servlet; import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; @WebServlet("/ResultServlet")
public class ResultServlet extends HttpServlet {
private static final long serialVersionUID = 1L; public ResultServlet() { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
//获取用户名和密码以及复选框是否选中
String userName = request.getParameter("userName");
String userPsw = request.getParameter("userPsw");
String remember = request.getParameter("remember");
// remember !=null 复选框被选中,需要设置cookie记住用户明和密码;
if(remember != null){
//没有连接数据库,给一个设定的用户和密码
if(userName.equals("lisi") && userPsw.equals("123")){
//成功匹配,说明登录成功,设置cookie
Cookie cName = new Cookie("userName", userName);
Cookie cPsw = new Cookie("userPsw", userPsw);
cName.setMaxAge(300);
cPsw.setMaxAge(300);
response.addCookie(cName);
response.addCookie(cPsw);
}
// remember =null 没有选中记住密码,或以前记住了密码,但是后来登录时取消了记住密码,则将对应的cookie清除
}else{
Cookie [] cookies = request.getCookies();
if(cookies != null){
for(Cookie x : cookies){
if(x.getName().equals("userName")){
//设置时间0 清除cookie
x.setMaxAge(0);
response.addCookie(x);
}else if(x.getName().equals("userPsw")){
x.setMaxAge(0);
response.addCookie(x);
}
}
} }
} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response);
} }
Cookie实现登录记住密码的更多相关文章
- Android SharedPreferences登录记住密码
SharedPreferences是Android中存储简单数据的一个工具类.可以想象它是一个小小的Cookie,它通过用键值对的方式把简单 数据类型(boolean.int.float.long和S ...
- vue 登录 + 记住密码 + 密码加密解密
<template> <el-form :model="ruleForm"> <h3 class="title">系统登录& ...
- JavaScript登录记住密码操作
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- QT 登录记住密码方法之一:Qt QSettings读写配置文件
不过本文写的是明文保存,最好还是加密一下,以防文件被非法读取 /**登录初始化的时候处理这部分操作*/ Settings cfg("user.ini",QSettings::Ini ...
- 设置Cookie,登录记住用户登录信息,获取用户登录过得信息
function setCookie(name,value) { var Days = 30; var exp = new Date(); exp.setTime(exp.getTime() + Da ...
- ios用户登录记住密码
登录 记录已登录用户步骤,存入偏好设置中存储放入一个数组. 具体存储 :存储用户到偏好设置中,其中用户是一个数组 向服务器响应客户端后的一些操作 (如果响应数据成功)其中用户和密码是一一对应的 .1先 ...
- 通过jquery.cookie.js实现记住用户名、密码登录功能
Cookies 定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术: 下载与引入:jquery.cookie.js基于jquery:先引入jquery,再引入:jq ...
- php实现记住密码下次自动登陆
这篇博客里面还写到 实现“记住我的登录状态”的功能方法,简言之,就是对首先对session进行用户信息赋值,检测session,失效后,利用cookie对其赋值: 在实现过程中,根据网上一些代码贴,整 ...
- shiro 实现 网站登录记住我功能 学习记录(四)
在很多网站都有在登录的时候,比如说记住我 几天之内 只要再此打开这个网站,都不需要再登录的情况: 1.前台JSP增加 单选框:记住我 如 2.在处理登录的 Controller 代码中增加接收这个参 ...
随机推荐
- 七牛云数据存储Demo
利用七牛云的Python SDK实现文件上传.下载等操作. import os import requests import qiniu from qiniu import BucketManager ...
- MySQL查询1
1.将下列语句复制到sqlyog的询问栏 /*!40101 SET NAMES utf8 */; create table `t_student` ( `id` double , `stuName` ...
- 2017年8月28日 HTML/CSS 语法(待填坑)
今天这种节日真的是 ----------------------------------------------------------- HTML
- Element is not clickable at point error in chrome
I see this only in Chrome. The full error message reads: "org.openqa.selenium.WebDriverExceptio ...
- macaca 测试web(2)
还是以博客园登录为例, 可以查看上一篇上一篇 这次只测试登录,使用ddt的数据驱动,这里我博客也有记录 地址 其实我在uiautomator +python 实现安卓自动化 一文当中我已经使用过ddt ...
- chrome开发工具指南(十四)
模拟和测试其他浏览器 您的任务不只局限于确保网站在 Chrome 和 Android 上出色运行.即使 Device Mode 可以模拟 iPhone 等多种其他设备,我们仍鼓励您查看其他浏览器模拟解 ...
- spring整合mybatis错误:Could not autowire field: com.kjczwl.ssm.service.ItemsService com.kjczwl.ssm.controller.ItemsController.itemsservice;
运行环境:jdk1.7.0_17+tomcat 7 + spring:3.2.0 +mybatis:3.2.7+ eclipse 错误:Could not autowire field: com.kj ...
- HDU 6200 2017沈阳网络赛 树上区间更新,求和
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6200 题意:给个图,有2种操作,一种是加一条无向边,二是查询u,v之间必须有的边的条数,所谓必须有的边 ...
- java基于注解的redis自动缓存实现
目的: 对于查询接口所得到的数据,只需要配置注解,就自动存入redis!此后一定时间内,都从redis中获取数据,从而减轻数据库压力. 示例: package com.itliucheng.biz; ...
- PHP(函数)
<script> // 获得日 var time = new Date(); var x = time.getDate(); document.write(x+"日," ...