使用Cookie存储登录数据并且实现用户自动登录

一、Cookie的介绍

什么是Cookie?

Cookie是Web项目在客户端保存的一些小数据

广泛运用于,在已经登录的网站保存用户名与密码,或者,在有过搜索记录的网站点击搜索框弹出搜索记录

 

Cookie的几点说明:

1.单个cookie大小不超过4kb

           2.同一个域名下cookie的数量一般不超过20个(浏览器不同,会不同)

           3.cookie用于存储少量不敏感的数据

                      4.cookie可以用来区分不同的客户端(在不登录时候,配合session)

二、Cookie的创建

1.Cookie对象是以键值对形式创建的:

        Cookie cookie = new Cookie("name","value");

2.设置Cookie的存活时间(单位:秒):

        cookie.setMaxAge(60);

        对于时间参数的不同设置:

        1.为正数时Cookie存在在客户端中,时间到了就自动清除

        2.为负数时(此方法时间参数默认值为-1),Cookie存在在内存中,浏览器关闭就消失

        3.为0时,Cookie立即被清除

3.设置Cookie的作用域:

cookie.setPath("/");//所有webapps都可以看到这个Cookie

cookie.setPath("/web01");//只有web01可以看到这个Cookie

tip:

这里小小提一句,如果范围设置为“/项目名”,前端的网页接收不到Cookie那就试试去掉“/”,

如果还不行那就直接使用“/”

4.保存Cookie到客户端:

        resp.addCookie(cookie);

        一次可以创建和保存多个Cookie对象

        如果有中文字符就需要转码储存:

Cookie c =  new Cookie("name",URLEncoder.encode("四川周杰伦", "utf-8") );

5.读取Cookie:

        通常读取是在前端网页执行:

                Cookie[] cookies = request.getCookies();

 

三、代码

1、网页代码

图片代码:

 代码:

 

<html>
    <body>
        <%
            Cookie[] cookies = request.getCookies();//读取Cookie数组
            String username = null;
            String password = null;
            for (Cookie cookie : cookies){//迭代获取每个Cookie
                if (cookie.getName().equals("username")){//有相同名字的Cookie就执行赋值
                    username = cookie.getValue();
                }
                if (cookie.getName().equals("password")){//有相同名字的Cookie就执行赋值
                    password = cookie.getValue();
                }
            }        
        %>


        <form>
                   用户名:<input type="text" name="username" placeholder="请输入用户名" value="<%=username==null?"":username%>"><br><br>

    &nbsp;&nbsp;&nbsp;密码:<input type="password" name="password" value="<%=password==null?"":password%>"><br><br>

    <input type="submit" value="登录" style="text-align: center"><br><br>
    <input type="checkbox" name="autologin" value="yes" >30天自动登录//获取多选框的值判断是否使用30天自动登录  
        </form>      
    </body>
</html>

 

2、控制器代码

图片代码:

思路:

在验证完用户名密码合法性之后,验证登录,登录成功后再进行保存Cookie数据

 

3、Cookie类代码

图片代码:

将添加Cookie方法写一个类可以增加代码的可读性,易维护

代码:
public class Cookies {
    public static void autoLogin(HttpServletRequest req, HttpServletResponse resp,User user) throws IOException {
                            System.out.println(user.getUsername());
                            Cookie cookie = new Cookie("username",user.getUsername());
                            Cookie cookie1 = new Cookie("password",user.getPassword());
                            cookie.setMaxAge(2592000);
                            cookie1.setMaxAge(2592000);
                            cookie.setPath("javaweb_jdbc");
                            cookie1.setPath("javaweb_jdbc");
                            resp.addCookie(cookie);
                            resp.addCookie(cookie1);
                            resp.sendRedirect("loginsuccess.jsp?username="+user.getUsername());//设置跳转地址
    }

}

 

这样一个利用Cookie实现自动登录的功能就做出来了

以上,就是使用Cookie存储登录数据并且实现用户自动登录的全部内容了,如有不同意见欢迎评论区讨论,如果这篇文章对你有帮助的话,还请三连支持一下,你的支持就是我更新的最大动力,886~

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值