基于servlet的简单登录检验

该博客介绍了一个登录系统的实现,当用户首次登录时,系统会显示欢迎信息。后续登录则会显示上次登录的时间。前端是一个简单的HTML登录表单,后端处理通过获取Cookie来判断是否为首次登录。如果已有Cookie,则更新时间并重定向到显示时间的页面;若无Cookie,表示是首次登录,重定向到欢迎页面并设置Cookie。
摘要由CSDN通过智能技术生成

实现功能:

登录系统
用户第一次登录,要显示,欢迎这是您第一次访问
下次登陆时示上次登录的时间

前端登录页面

<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="/HomewprkDemo01" method="post">
    <label for="username">用户名:<input id="username" name="username" type="text"></label><br>
    <label for="pwd">密码:<input id="pwd" name="password" type="password"></label><br>
    <button type="submit">提交</button>
</form>

</body>
</html>

后端获取浏览器cookie(这里主要展示对cookie的操作,就不对前端输入数据的判断)

Cookie[] cookies = request.getCookies();

对cookie进行遍历,然后对获取的cookie做判断是否存在已经登录的cookie,如果有就对cookie进行遍历,将cookie的值作为会话的作用域在前端展示,并添加新的时间作为新的cookie值,然后通过重定向跳转到时间页面

for (Cookie cookie : cookies) {
            String name = cookie.getName();
            if (name.equals("time")){
                for (Cookie cook : cookies) {
                    String value = cookie.getValue();
                    String decode = URLDecoder.decode(value);
                    ServletContext servletContext = request.getServletContext();
                    servletContext.setAttribute("time",decode);
                }
                Date date = new Date();
                String s = date.toString();
                String encode = URLEncoder.encode(s,"utf-8");
                Cookie cook = new Cookie("time",encode);
                response.addCookie(cook);
                RequestDispatcher requestDispatcher = request.getRequestDispatcher("/time.jsp");
                requestDispatcher.forward(request,response);
            }
        }

如果没有cookie值,表名是第一次登录,于是跳转到登录成功页面,并赋给cookie值,证明已经登录过,这段代码不能写在cookie的循环里,因为浏览器有很多自带的cookie值,如果写在循环里,else会一直执行这段代码

Date date = new Date();
            String s = date.toString();
            String encode = URLEncoder.encode(s,"utf-8");
            Cookie cook = new Cookie("time",encode);
            response.addCookie(cook);
            RequestDispatcher requestDispatcher = request.getRequestDispatcher("/welcome.jsp");
            requestDispatcher.forward(request,response);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值