使用Cookie简化用户登录

创建登录页面login.jsp
在这里插入图片描述

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>

<html>
<head>
    <title>用户登录</title>
</head>
<body>
<h3 style="text-align: center">用户登录</h3>
<form action="do_login.jsp" method="post">
    <table border="1" cellpadding="10" style="margin: 0px auto">
        <tr>
            <td align="center">用户名</td>
            <td><input id="uname" type="text" name="username"/></td>
        </tr>
        <tr>
            <td align="center">密&nbsp;码</td>
            <td><input id="upwd" type="password" name="password"/></td>
        </tr>
        <tr align="center">
            <td colspan="2">
                <input id="saveuname" type="checkbox" name="save" value="记住用户名"/>记住用户名
                <input id="saveupwd" type="checkbox" name="save" value="记住密码" onclick="setchkuname()"/>记住密码
            </td>
        </tr>
        <tr align="center">
            <td colspan="2">
                <input type="submit" value="登录"/>
                <input type="reset" value="重置"/>
            </td>
        </tr>
    </table>
</form>
<%
    String uname = "";
    String upwd = "";
    String saveuname = "";
    String saveupwd = "";
    Cookie[] cookies = request.getCookies();
    for (Cookie cookie: cookies) {
        if (cookie.getName().equals("uname")) {
            uname = cookie.getValue();
        }
        if (cookie.getName().equals("upwd")) {
            upwd = cookie.getValue();
        }
        if (cookie.getName().equals("saveuname")) {
            saveuname = cookie.getValue();
        }
        if (cookie.getName().equals("saveupwd")) {
            saveupwd = cookie.getValue();
        }
    }

    String errMsg = (String) session.getAttribute("errMsg");
    if (errMsg != null){
        errMsg = new String(errMsg.getBytes("iso-8859-1"),"utf-8");
        out.print("<script>alert('" + errMsg + "')</script>");
    }
%>
<script type="text/javascript">
    // 显示用户做出的是否记住用户名的选择
    var chkSaveUname = document.getElementById("saveuname");
    var saveuname = "<%= saveuname %>";
    if (saveuname == "yes") {
        chkSaveUname.checked = true;
    }

    // 显示用户做出的是否记住密码的选择
    var chkSaveUpwd = document.getElementById("saveupwd");
    var saveupwd = "<%= saveupwd %>";
    if (saveupwd == "yes") {
        chkSaveUpwd.checked = true;
    }

    var txtUname = document.getElementById("uname");
    var txtUpwd = document.getElementById("upwd");

    // 根据用户做出的选择,决定是否自动填充用户名或密码
    if (chkSaveUname.checked) {
        txtUname.value = "<%= new String(uname.getBytes("iso-8859-1"), "utf-8") %>";
    }
    if (chkSaveUpwd.checked) {
        txtUpwd.value = "<%= upwd %>";
    }

    /**
     * 选择【记住密码】复选框,自动会选择【记住用户名】复选框
     */
    function setchkuname() {
        if (chkSaveUpwd.checked) {
            chkSaveUname.checked = true;
        }
    }
</script>
</body>
</html>

创建do_login.jsp
在这里插入图片描述

<%
    String name = request.getParameter("name");
    if(name != null && !name.trim().equals("")){
        Cookie cookie = new Cookie("name",name);
        cookie.setMaxAge(300);
        response.addCookie(cookie);
    }else{
        Cookie[] cookies = request.getCookies();
        if(cookies != null && cookies.length > 0){
            for(Cookie cookie:cookies){
                String cookieName = cookie.getName();
                if("name".equals(cookieName)){
                    String val = cookie.getValue();
                    name = val;
                }
            }
        }
    }
    if(name != null && !name.trim().equals("")){
        response.sendRedirect("login.jsp");
    }else{//否则重定向到登录界面
        response.sendRedirect("success.jsp");
    }
%>

创建登录成功页面success.jsp
在这里插入图片描述

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录成功</title>
</head>
<body>
<%
    String uname = "";
    Cookie[] cookies = request.getCookies();
    for (Cookie cookie:cookies){
        if (cookie.getName().equals("uname")){
            uname = cookie.getValue();
        }
    }
%>
<h3><%= new String(uname.getBytes("iso-8859-1"),"utf-8")%>,登录成功!</h3>
</body>
</html>


输入正确的用户名密码【无心剑】【903213】
在这里插入图片描述
显示登录成功
在这里插入图片描述
设置cookie的有效时间为5分钟
在这里插入图片描述
不输入用户名密码【登录成功】
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值