文档章节

JAVA--高级基础开发Cookie实现记住用户名和密码

-李文杰-
 -李文杰-
发布于 2019/12/15 23:23
字数 739
阅读 80
收藏 0
前端JSP页面: 实现保存用户名和密码
<%@ page import="java.net.URLDecoder" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>Cookie</title>
  </head>
  <body>
<div>
    <%
        // 用户名
        String user = "";
        // 登录密码
        String pass = "";
        // 复选框是否选中
        String checked = "";
        // 获取的是请求里的所有cookie组成的数组
        Cookie[] cookies = request.getCookies();
        // 如果cookies数组不为空对其进行遍历
        if (cookies != null && cookies.length > 0) {
            // 循环遍历Cookie
            for (int i = 0; i < cookies.length; i++) {
                // 获取Cookie对象
                Cookie cookie = cookies[i];
                // 将创建的cookie名与获取的cookie数组中已经存在的cookie名进行比较
                if ("name".equals(cookie.getName())) {
                    // "name"是在另一个jsp文件中创建的cookie名
                    // 获取名字叫做"name"的cookie的值
                    user = URLDecoder.decode(cookie.getValue(), "utf-8");
                    // 将“记住用户名”设置为勾选
                    checked = "checked";
                }
                // 将创建的cookie名与获取的cookie数组中已经存在的cookie名进行比较
                if ("password".equals(cookie.getName())) {
                    // "password"是在另一个jsp文件中创建的cookie名
                    // 获取名字叫做"password"的cookie的值
                    pass = cookie.getValue();
                }
            }
        }
    %>
    <h1>用户登录</h1>
    <form action="Login.jsp" method="POST">
        <%--<%=user%>指的是将获取的cookie值放进输入框内--%>
      用户名:<input type="text" name="username" value="<%=user%>"><br/>
      密码:<input type="password" name="password" value="<%=pass%>"><br/>
       记住用户名和密码<input type="checkbox" name="rememberme" checked="<%=checked%>"><br>

        <input type="submit" name="login" value="登录"/>
    </form>
</div>

  </body>
</html>
后端Servlet验证:
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;
import java.io.IOException;
import java.io.PrintWriter;


@WebServlet("/Login3")
public class Login3 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //设置请求的编码
        req.setCharacterEncoding("utf-8");
        //获取请求中的参数
        String  name=req.getParameter("name");
        String password=req.getParameter("password");
        String remember=req.getParameter("remember");


        //设置响应的文本信息
        resp.setContentType("text/html;charset=UTF-8");
        PrintWriter out=resp.getWriter();

        //判断用户名和密码是否正确
        if(name.equals("Admin")&&password.equals("000000")){
            // 新建名为name的Cookie
            Cookie nameCookie = new Cookie("name",name);
            // 新建名为password的Cookie
            Cookie passwordCookie = new Cookie("password", password);
            // 判断复选框是否被选中,如果选中则返回on
            if (remember.equals("on")) {
                // 设置保存Cookie的时间长度,
                nameCookie.setMaxAge(60*60*24*7); //7天
                passwordCookie.setMaxAge(60*60*24*7);
            } else {
                // 设置将不保存Cookie
                nameCookie.setMaxAge(0);
                passwordCookie.setMaxAge(0);
            }
            // 输出到客户端
            resp.addCookie(nameCookie);
            resp.addCookie(passwordCookie);
            // 登录成功后跳转到success.jsp
            req.getRequestDispatcher("success.jsp").forward(req, resp);
        }else if (!name.equals("Admin") && password.equals("000000")) {// 如果用户名不正确,密码正确
            // 保存错误提示数据
            req.setAttribute("error", "用户名不正确");
            // 登录失败后将跳转到error.jsp
            req.getRequestDispatcher("error.jsp").forward(req, resp);
        } else if (name.equals("Admin") && !password.equals("000000")) {// 如果用户名正确,密码不正确
            // 保存错误提示数据
            req.setAttribute("error", "密码不正确");
            // 登录失败后将跳转到error.jsp
           req.getRequestDispatcher("error.jsp").forward(req, resp);
        } else {// 如果用户名和密码都不正确
            // 保存错误提示数据
           req.setAttribute("error", "用户名和密码都不正确");
            // 登录失败后将跳转到error.jsp
            req.getRequestDispatcher("error.jsp").forward(req, resp);
        }
    }
}

© 著作权归作者所有

-李文杰-
粉丝 4
博文 57
码字总数 123382
作品 0
东城
私信 提问
SSM框架整合Shiro后的开发

手摸手教你SSM框架整合Shiro后的开发 前面,我们学习了Shiro实现权限管理之表结构设计以及JQuery-Ztree.js使用范例 ,接下来就详细介绍一下SSM框架整合Shiro框架后的开发。同样推荐大家参看张...

TyCoding
2018/09/19
400
0
浅析cookie和session

关于cookie和session的区别: 通常意义上的cookie指的是利用客户端的技术在计算机用户的文件夹下存储的文件,又名硬盘cookie,一般来说是有上限的。我的cookie是存在D:Documents and Setting...

Mr_Qi
2012/08/27
418
0
GUAVA--基础工具(Preconditions)

1、前置条件 俗话说丑话讲在前面,在做某些事情的时候是需要做一些前置条件的。假如需要修改一条数据的话,当参数传进来,我们要先查询这条数据是否存在。这时候就需要一个if了,如果参数还需...

MrYuZixian
2019/11/22
23
0
大数据开发培训:0基础学习Java编程语言有哪些知识点?

Java 技术通用、高效、具有平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网等,学习Java首先要知道学习知识点有哪些。在这就用加米谷大数据培训...

加米谷大数据
2018/07/25
2
0
Java程序员必读书单,家族又添新成员

点击关注异步图书,置顶公众号 每天与你分享IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书。 ——异步小编 有些革命出其不意地吸引了全世界的眼球。Twitter、Linux操作系统和...

异步社区
2018/05/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 宇宙银河乱弹英雄传 —— @FalconChen

1Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @巴拉迪维 :Axxis的单曲《Only God Knows》 最近只听摇滚,挖了好多以前没听过的歌,蛮好。#今日歌曲推荐# 《Only God Knows》- Axxis 手机...

小小编辑
今天
248
2
Safari Date() 函数对日期时间字符串(yyyy-MM-dd HH:mm:ss) 提示NaN的问题

今天发现一个奇怪的问题,在iPhone使用 safari 选择定时发布文章到OSC,选择时间后提示不是合法的时间,判断时间的代码如下: var d = new Date('2020-01-23 23:15'); if (isNaN(d)) {...

FalconChen
昨天
124
0
ActiveMQ学习之通讯协议

一、支持的通讯协议 ActiveMQ支持的client-broker通讯协议有:TCP、NIO、UDP、SSL、HTTP(S)、VM 其中配置Transport Connector的文件在ActiveMQ安装目录的conf/activemq.xml中的<TransportCon...

冥焱
昨天
91
0
应急广播户户通平台

一、平台概述 应急广播户户通平台为软硬一体化广播服务解决方案。实现了应急广播、视音频及图片文字信息、调频及数字广播FM、天气预报信息接收功能,以及视音频播放、智能机器人、电子日历等...

neocean
昨天
133
0
如何为Apache 2.2启用mod_rewrite

我已经在我的Vista机器上安装了新的Apache 2.2,一切正常,除了mod重写。 我没有注释 LoadModule rewrite_module modules/mod_rewrite.s 但是我的重写规则都没有,即使是简单的重写规则 Re...

javail
昨天
53
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部