一 实体类
package com.lyq.bean;
public class WorkUser {
private String wUser; //应聘人员账户名字段
private String wPassword; //应聘人员账户的密码字段
private int wID; //关联应聘人员编号字段
//应聘人员账户名字段的get方法
public String getwUser() {
return wUser;
}
//应聘人员账户名字段的set方法
public void setwUser(String wUser) {
this.wUser = wUser;
}
//其余字段的get和set方法请自行补充
//应聘人员账户密码字段的get方法
public String getwPassword() {
return wPassword;
}
//应聘人员账户密码字段的set方法
public void setwPassword(String wPassword) {
this.wPassword = wPassword;
}
//关联应聘人员编号字段的get方法
public int getwID() {
return wID;
}
//关联应聘人员编号字段的set方法
public void setwID(int wID) {
this.wID = wID;
}
}
二 DAO层
package com.lyq.bean;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class WorkUserDAO {
/**
* 获取数据库连接
* @return
*/
//获取数据库连接
public Connection getConnection(){
Connection connection = null; //声明Connection对象的实例
try {
Class.forName("org.gjt.mm.mysql.Driver");
//装载数据库驱动,若连接报错,可尝试将参数替换为"com.mysql.jdbc.Driver"
String url = "jdbc:mysql://localhost:3306/work?characterEncoding=UTF-8";
String username = "root";
String password = ""; //账号密码信息根据自己MySQL系统的设定填写
connection = DriverManager.getConnection(url, username, password);
//建立与数据库的连接
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection; //返回Connection对象实例
}
/**
* 添加一条待业应聘人员账户记录
* @param worker
* @return
*/
//添加一条待业应聘人员账户记录
public boolean insertWorkUser(WorkUser workUser){
Connection connection = getConnection(); //获取数据库连接
boolean flag = false;
try {
String sql = "insert into workuser"
+ "(wuser, wpassword, wID) value(?, ?, ?)";
PreparedStatement pStatement = connection.prepareStatement(sql);
pStatement.setString(1, workUser.getwUser());
String password = MD5Util.md5Encode(workUser.getwPassword());
//对用户输入的密码字段信息进行MD5加密处理,workuser表的密码字段存储密文
pStatement.setString(2, password);
pStatement.setInt(3, workUser.getwID());
int row = pStatement.executeUpdate();
if(row > 0){
//判断是否添加成功,若row为0,则表示添加失败
flag = true;
}
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 通过用户名查询应聘人员账号
* @param user
* @return
*/
//通过应聘人员账户名查询应聘人员账号
public WorkUser findWorkUserByID(String user){
List<WorkUser> list = new ArrayList<WorkUser>();
//用来暂存查询结果的数组
Connection connection = getConnection();
//获取数据库连接
try {
CallableStatement cStatement = connection.prepareCall
("{call findWorkUserByID(?)}");
//调用数据库存储过程findWorkUserByID,参数为应聘人员账户名字段
cStatement.setString(1, user); //添加参数
ResultSet resultSet = cStatement.executeQuery();
//执行查询语句
while(resultSet.next()){
WorkUser workUser = new WorkUser();
workUser.setwUser(resultSet.getString("wuser"));
workUser.setwPassword(resultSet.getString("wpassword"));
workUser.setwID(resultSet.getInt("wID"));
list.add(workUser);
//将查询结果存储到list中
}
connection.close(); //关闭数据库连接
cStatement.close();
resultSet.close();
} catch (Exception e) {
e.printStackTrace();
}
if(list == null || list.size() < 1){
//判断是否查询成功
return null;
} else {
//若查询成功则将结果从list中取出并返回
return list.get(0);
}
}
}
三 数据层
CREATE PROCEDURE `findWorkUserByID`(user CHAR(40))
BEGIN
select * From workuser where workuser.wuser=user;
END
四 视图层
1 用户登录界面设计
<%@page import="com.lyq.bean.Worker"%>
<%@page import="java.util.List"%>
<%@page import="com.lyq.bean.WorkerDAO"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.SQLException"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>饭票网-用户登录</title>
</head>
<body>
<div
style="background-image: url('images/backmm.jpg');
width: 100%; height: 100%;">
<form action="checkup.jsp" method="post">
<table align="center">
<tr>
<td colspan="2">
<div style="height: 155px;"></div>
</td>
</tr>
<tr>
<td><img alt="" src="images/haha.jpg"></td>
<td>
</td>
<td>
<table align="center">
<tr>
<td align="center" colspan="3"><h2>
<b>用户登录</b></h2><hr>
</tr>
<tr>
<td align="right">账 户:</td>
<td colspan="2">
<input type="text" name="user">
</td>
</tr>
<tr>
<td align="right">密 码:</td>
<td colspan="2">
<input type="password" name="password">
</td>
</tr>
<tr>
<td colspan="3"><hr></td>
</tr>
<tr>
<td align="right">用户类型:</td>
<td><select name="usertype" size="1">
<option value="职工">职工</option>
<option value="企业">企业</option>
</select></td>
<td align="right">
<input type="submit" value="登 录">
</td>
</tr>
<tr>
<td colspan="3">
</td>
</tr>
<tr>
<td></td>
<td align="center">
<a href="newWorker.jsp">职工注册</a>
</td>
<td align="right">
<a href="newCompany.jsp">企业注册</a>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2"><div style="height: 160px;"></div></td>
</tr>
</table>
</form>
</div>
</body>
</html>
2 用户登录验证处理页面
<%@page import="com.lyq.bean.CompanyUserDAO"%>
<%@page import="com.lyq.bean.CompanyDAO"%>
<%@page import="com.lyq.bean.CompanyUser"%>
<%@page import="com.lyq.bean.Company"%>
<%@page import="com.lyq.bean.MD5Util"%>
<%@page import="com.lyq.bean.WorkUser"%>
<%@page import="com.lyq.bean.WorkUserDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String user =
new String(request.getParameter("user"));
String password =
new String(request.getParameter("password"));
password = MD5Util.md5Encode(password);
String type =
new String(request.getParameter("usertype"));
if(user == null || user.equals("")
|| password == null || password.equals("")){
%>
账号或密码不能为空!
<a href="index.jsp">返回登陆页面</a>
<%
}
else {
if(type.equals("职工")){
WorkUser workUser =
new WorkUserDAO().findWorkUserByID(user);
if(workUser == null){
%>
未找到该账号!
<a href="index.jsp">返回登陆页面</a>
<%
} else if(password.equals(workUser.getwPassword())){
%>
职工编号:<%=workUser.getwID() %>
登陆成功!
<a href="home.jsp?workerPage1=<%=workUser.getwID() %>">进入主页</a>
<%
} else {
%>
账号或密码错误!
<a href="index.jsp">返回登陆页面</a>
<%
}
} else {
CompanyUser companyUser =
new CompanyUserDAO().findCompanyUserByID(user);
if(companyUser == null){
%>
未找到该账号!
<a href="index.jsp">返回登陆页面</a>
<%
} else if(password.equals(companyUser.getcPassword())){
%>
企业编号:<%=companyUser.getcID() %>
登陆成功!
<a href="cHome.jsp?workerPage2=<%=companyUser.getcID() %>">进入主页</a>
<%
} else {
%>
账号或密码错误!
<a href="index.jsp">返回登陆页面</a>
<%
}
}
}
%>
</body>
</html>
这段代码比较复杂,先写Java代码,再将HTML脚本嵌套进去。
五 运行