使用JavaBean 实现简单的登陆验证

思路:

   用户在登陆页面输入信息(用户名、密码),提交表单验证信息,
   如果数据库中有该用户的信息,则跳转至登陆成功页面,否则返回
   登陆页面,并提示用户信息不存在。

准备工作:

1、一个存储用户信息的Bean类,并包含验证方法和获取错误信息的方法
2、登陆页面(login.jsp)、检查信息页面(check.jsp)、登陆成功页面(success.jsp)

User.java


package top.soul.bean;

import java.util.HashMap;
import java.util.Map;

public class UserInfo {
    private String username="";
    private String password="";
    Map<String,String> userMap=null;
    Map<String,String> errorsMap=null;

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
    //验证方法
    public boolean isCheck(){
        boolean flag=true;
        userMap=new HashMap<String,String>();
        errorsMap=new HashMap<String,String>();
        if(!this.userMap.containsKey(this.username)){//userMap中是否存在所输入的用户
            flag=false;
            this.errorsMap.put("username","该用户不存在!");
            this.username="";
        }
        String passwd=this.userMap.get(this.username);//Bean类中 userMap存储的对应用户的密码
        if(this.password==null ||!passwd.equals(this.password)){
                flag=false;
                this.password="";
                this.errorsMap.put("password","输入密码错误,请重新输入正确的密码!");
                this.username="";
            }
        return flag;
    }
    
    //获取错误信息
    public String getErrors(String key){
        String errors=this.errorsMap.get(key);
        return errors==null?"":errors;
    }
}


login.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<jsp:useBean class="top.soul.bean.UserInfo" id="user" scope="session" />
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Login Page</title>
    </head>
    <body>
        <h1 style="color:#ff3300">Login</h1>
        <form action="check.jsp" method="post">
            <table border="1">
                <tr>
                    <td>用户名:</td>
                    <td><input name="username" value="<jsp:getProperty name="user" property="username" />" />
                        <span style="color:red;"><%= user.getErrors("username") %></span></td>
                </tr>
                <tr>
                    <td>&nbsp;&nbsp;码:</td>
                    <td><input type="password" name="password" value="<jsp:getProperty name="user" property="password" />" />
                        <span style="color:red;"><%= user.getErrors("password") %></span></td>
                </tr>
                <tr>
                    <td><input type="submit" value="登陆" />
                        &nbsp;<input type="reset" value="重置"/></td>
                </tr>
            </table>
        </form>
        
    </body>
</html>

check.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<jsp:useBean class="top.soul.bean.UserInfo" id="user" scope="session" />
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Check account</title>
    </head>
    <body>
        <jsp:setProperty  name="user" property="*"/>
        <%
            if (user.isCheck()) {
        %>
        <jsp:forward page="success.jsp"/>
        <%        } else {
        %>
        <jsp:forward page="login.jsp"/>
        <%
            }
        %>
    </body>
</html>

success.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<jsp:useBean class="top.soul.user.bean.User" id="user" scope="session" ></jsp:useBean>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>登陆成功</title>
    </head>
    <body>
        <div style="text-align: center;">
            <h4>欢迎您:
                <span style="color:red;">
                    <jsp:getProperty name="user" property="username" />
                </span>用户!
            </h4>
        </div>
    </body>
</html>

后续会补充完善,这里只是一个简单的实现和JavaBean的使用,

发布了10 篇原创文章 · 获赞 1 · 访问量 1500
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览