思路:
用户在登陆页面输入信息(用户名、密码),提交表单验证信息,
如果数据库中有该用户的信息,则跳转至登陆成功页面,否则返回
登陆页面,并提示用户信息不存在。
准备工作:
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>密 码:</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="登陆" />
<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的使用,