一、什么是Cookie

cookie是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段。Cookie的目的就是为用户带来方便,为网站带来增值。虽然有着许多误传,事实上Cookie并不会造成严重的安全威胁。Cookie永远不会以任何方式执行,因此也不会带来病毒或攻击你的系统。另外,由于浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB,因此Cookie不会塞满你的硬盘。

例如,当我们第一次访问网站输入用户名密码时,可以选择让系统记住用户名密码,下次就不用重新输入了,这就是典型的Cookie的应用。

二、Cookie带来的好处:

cookies给网站和用户带来的好处非常多:

1. Cookie能使站点跟踪特定访问者的访问次数、最后访问时间等
2. Cookie能告诉在线广告商广告被点击的次数,从而可以更精确的投放广告
3. Cookie有效期限未到时,Cookie能使用户在不键入密码和用户名的情况下进入曾经浏览过的一些站点
4. Cookie能帮助站点统计用户个人资料以实现各种各样的个性化服务在JSP中,我们也可以使用Cookie,来编写一些功能强大的应用程序。

有些浏览器可以禁用Cookie,所以不能使用Cookie来完成核心的业务。

三、Cookie类的主要方法:

int getMaxAge() -------返回Cookie过期之前的最大时间,以秒计算。
int setMaxAge() -------设置Cookie过期时间,以秒计算。
String getName() ------- 返回Cookie的名字
String getValue() ------- 返回Cookie的值。
void setValue(String newValue) ------- cookie创建后设置一个新的值。

四、代码举例:

login.jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ include file="/common/common.jsp"%>
<html>
<head><title>登录</title>
</head>
<body>
${cookie.sevenDayName.value}
<c:if test="${cookie.sevenDayName.value!=null}"><script>location.href="${path}/user/UserServlet?m=login&userName=${cookie.sevenDayName.value}&userPsw=${cookie.sevenDayPsw.value}";</script>
</c:if>
<h1>登录</h1>
<form action="${path}/user/UserServlet" method="get">
<%--    隐藏输入框用来传值--%><input type="hidden" name="m" value="login"/>用户名:<input name="userName"/><br>密码:<input type="password" name="userPsw"/><br><% session.removeAttribute("msg");%><input type="checkbox" name="sevenDay" value="1"<c:if test="${cookie.rememberName!=null}">checked</c:if>/>记住密码<br><input type="checkbox" name="sevenDay" value="1"/>七天免登录<br><input type="submit" value="登录"><br>
</form>
<a href="${path}/user/register.jsp" >注册</a>
</body>
</html>

UserServlet登陆

    //登录public void login(HttpServletRequest req, HttpServletResponse res) throws Exception{//获取参数String userName=req.getParameter("userName");String userPsw = req.getParameter("userPsw");//赋值判断User user = new User(userName,userPsw);boolean login=userService.login(user);if(login){//验证记住密码String rememberMe =req.getParameter("rememberMe");if(StringUtils.isNotNull(rememberMe)){CookieUtils.writeCookieForever(res, Constants.REMEMBER_NAME,userName);CookieUtils.writeCookieForever(res, Constants.REMEMBER_Psw,userPsw);}else{//           登陆成功,并且取消rememberCookieUtils.removeCookie(res, Constants.REMEMBER_Psw);}

封装的参数类Constants类

public class Constants {public static final String REMEMBER_NAME="rememberName";public static final String REMEMBER_Psw="rememberPsw";public static final String SEVEN_DAY_NAME="sevenDayName";public static final String SEVEN_DAY_Psw="sevenDayPsw";
//    public static final int SEVEN_DAY_TIME=7*24*60*60;public static final int SEVEN_DAY_TIME=30;public static final String USER_LOGIN_CODE = "user_login_code";
}

封装的cookie方法

public class CookieUtils {//read 读取public static String readCookie(HttpServletRequest request,String key) throws Exception{Cookie[] cookies = request.getCookies();if(cookies!=null){for (Cookie c:cookies) {String name = URLDecoder.decode(c.getName(),"utf-8");if(name.equals(key)){return URLDecoder.decode(c.getValue(),"utf-8");}}}return null;}//write 写入,重载public static void writeCookie(HttpServletResponse response,String key,String value) throws Exception{writeCookie(response,key,value,-1);}public static void writeCookieForever(HttpServletResponse response,String key,String value) throws Exception{writeCookie(response,key,value,Integer.MAX_VALUE);}public static void writeCookie(HttpServletResponse response,String key,String value,int time) throws Exception{String name= URLEncoder.encode(key,"utf-8");String newValue = URLEncoder.encode(value,"utf-8");Cookie c =new Cookie(name,newValue);c.setMaxAge(time);response.addCookie(c);}//remove 删除public static void removeCookie(HttpServletResponse response,String key)throws Exception{writeCookie(response,key,"",0);}}

以上大概就是利用cookie实现网页记住密码的功能了

cookie实现记住密码相关推荐

  1. java记住密码 cookie_Java Web网站怎么利用Cookie实现记住密码功能

    在做java web网站开发时,为了避免每次登录都需要输入用户名和密码,我们会使用Cookie技术来实现记住密码功能,在这里小编使用简单的项目案例来教大家具体的实现过程. 前期准备 1.下载好jque ...

  2. Cookie实现记住密码、自动登录

    前端代码 <form id="form" action="xxx" method="post"><div><i ...

  3. AppCan用cookie实现记住密码功能 [APP]

    今天想做个在应用上记住密码的功能.想了一下,先用COOKIE来测试.COOKIE保存在客户端. 关于COOKIE在手机上安不安全的问题,以后再讨论. 其实想过在手机上创建文件保存密码,但是,没有时间, ...

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

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

  5. Cookie实现记住密码及自动登录

    最近对华丹快速开发平台进行升级,需要对实现记住密码以及自动登录功能,下面主要说一下如何用cookie实现此功能. 一.什么是cookie? Cookie,有时也用其复数形式Cookies.是保存在客户 ...

  6. jquery.cookie.js操作cookie实现“记住密码”

    //初始化页面时验证是否记住了密码 $(document).ready(function() {if ($.cookie("rmbUser") == "true" ...

  7. 危险,不要随意让网站记住密码自动登陆!

    为了方便用户登录,几乎所有的网站都实现了"记住密码"."自动登陆"这样似乎人性化的功能. 我也很喜欢这个功能,因为我自己的脑子实在是讨厌记东西. 为了安全起见, ...

  8. 记住密码php代码,推荐10款记住密码的用法代码汇总

    Javascrip操作登录记住用户名和密码 $(document).ready(function () { $("#UserAccount").focus(); &n 简介 ...

  9. vue登录页面设置记住密码

    vue使用cookie实现记住密码功能 1.样式结合elementui <el-form :model="usermsg" ref="usermsg"&g ...

最新文章

  1. Spring Boot(十一)Redis集成从Docker安装到分布式Session共享
  2. 再见,HttpClient!再见,Okhttp!
  3. LeetCode 动态规划(Dynamic programming)系列题目--C++,Python解法
  4. tree树的展示,check树的展示,json数据转zree树格式数据
  5. Sql Server的弱口令入侵测试以及防范
  6. 吉林高考成绩查询2021年几号公布,2021年吉林高考成绩查询时间及查分方式
  7. 为什么要避免不可重复读_脏读、幻读和不可重复读?为啥?
  8. HOG特征中的三线插值法
  9. [转]Objective-C 语言特性
  10. 2017年12月计算机一级c,2017年12月计算机二级《C语言》强化模拟题(1)
  11. python开发sqlite3完整_python开发_sqlite3_绝对完整
  12. java 使用 com.thoughtworks.xstream.XStream 将map转为xml
  13. 一张网络路由器与能源路由器对照表(2015年)
  14. post请求参数校验工具param-validate
  15. Unicode双向算法详解(bidi算法)(二)
  16. oracle中笛卡尔积怎么用,Oracle的表连接方法(四)笛卡尔积
  17. 常用的sql语句(一)
  18. 机房动环设备集中监控数据运维云平台解决方案
  19. Oracle数据库-02
  20. Python自动化测试框架之Pytest相关用法-基本使用(1)

热门文章

  1. 953.验证外星语词典
  2. 前后台获取当前用户城市【根据IP获取城市】
  3. 五十音三天快速记忆方法汇总
  4. html中文字处理美化的效果,PPT文字处理 PPT图片美化 PPT页面的布局-泡泡糖办公...
  5. angular新手如何学习angular?
  6. 让树莓派开机运行Python脚本的简单方法
  7. UnRaid添加镜像源加速应用安装的正确方法
  8. 计算机windows10怎么找word,win10的word在哪,windows10word文档
  9. 数学建模1-评价类问题
  10. Google Quick Search Box - Quicksilver后继有人