我的招聘网——用户登录模块设计与实现

一 实体类

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>
                         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                    </td>
                    <td>
                        <table align="center">
                            <tr>
                                <td align="center" colspan="3"><h2>
                                    <b>用户登录</b></h2><hr>
                                </tr>
                            <tr>
                                <td align="right">账&nbsp;&nbsp;&nbsp;户:</td>
                                <td colspan="2">
                                    <input type="text" name="user">
                                </td>
                            </tr>
                            <tr>
                                <td align="right">密&nbsp;&nbsp;&nbsp;码:</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脚本嵌套进去。

五 运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值