基于Java+Servlet+MySQL的人才招聘网站的设计与实现

一、项目背景

随着互联网的发展,人才招聘市场也发生了巨大的变化。传统的人才招聘方式已经越来越不能满足企业与求职者的需求,因此,基于网络的人才招聘网站应运而生。本项目旨在设计并实现一个简单的招聘网站,主要采用Java、Servlet以及MySQL作为后端技术。

二、项目架构

本项目的架构主要分为前端与后端两部分:

  1. 前端:主要负责用户与系统的交互,使用HTML、CSS和JavaScript构建页面。
  2. 后端:使用Java Servlet处理客户端请求,通过JDBC与MySQL进行数据库交互。

三、数据库设计

本项目主要涉及两个表:users 表用于存储用户信息,jobs 表用于存储职位信息。

1. Users 表结构

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(100) NOT NULL,
    password VARCHAR(100) NOT NULL,
    role ENUM('求职者', '招聘者') NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE
);

2. Jobs 表结构

CREATE TABLE jobs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(100) NOT NULL,
    description TEXT NOT NULL,
    company VARCHAR(100) NOT NULL,
    location VARCHAR(100),
    salary VARCHAR(50),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

四、后端实现

1. 数据库连接

在项目中,我们需要创建一个工具类以便于数据库的连接。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBUtil {
    private static final String URL = "jdbc:mysql://localhost:3306/recruitment";
    private static final String USER = "root";
    private static final String PASSWORD = "password";

    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }
}

2. 用户注册与登录

我们通过Servlet来处理用户的注册与登录。

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

@WebServlet("/UserServlet")
public class UserServlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        String action = request.getParameter("action");

        if ("register".equals(action)) {
            registerUser(request, response);
        } else if ("login".equals(action)) {
            loginUser(request, response);
        }
    }

    private void registerUser(HttpServletRequest request, HttpServletResponse response) 
            throws IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String role = request.getParameter("role");
        String email = request.getParameter("email");

        try (Connection conn = DBUtil.getConnection()) {
            String sql = "INSERT INTO users (username, password, role, email) VALUES (?, ?, ?, ?)";
            PreparedStatement pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, username);
            pstmt.setString(2, password);
            pstmt.setString(3, role);
            pstmt.setString(4, email);
            pstmt.executeUpdate();
            response.getWriter().write("注册成功");
        } catch (SQLException e) {
            e.printStackTrace();
            response.getWriter().write("注册失败");
        }
    }

    private void loginUser(HttpServletRequest request, HttpServletResponse response) 
            throws IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        try (Connection conn = DBUtil.getConnection()) {
            String sql = "SELECT * FROM users WHERE username=? AND password=?";
            PreparedStatement pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, username);
            pstmt.setString(2, password);
            ResultSet rs = pstmt.executeQuery();
            if (rs.next()) {
                response.getWriter().write("登录成功");
            } else {
                response.getWriter().write("用户名或密码错误");
            }
        } catch (SQLException e) {
            e.printStackTrace();
            response.getWriter().write("登录失败");
        }
    }
}

五、前端实现

前端页面使用HTML来展示,并通过表单提交数据。

<!DOCTYPE html>
<html>
<head>
    <title>人才招聘网站</title>
</head>
<body>
    <h1>注册</h1>
    <form action="UserServlet" method="post">
        <input type="hidden" name="action" value="register">
        用户名: <input type="text" name="username"><br>
        密码: <input type="password" name="password"><br>
        角色: <select name="role">
            <option value="求职者">求职者</option>
            <option value="招聘者">招聘者</option>
        </select><br>
        邮箱: <input type="email" name="email"><br>
        <input type="submit" value="注册">
    </form>

    <h1>登录</h1>
    <form action="UserServlet" method="post">
        <input type="hidden" name="action" value="login">
        用户名: <input type="text" name="username"><br>
        密码: <input type="password" name="password"><br>
        <input type="submit" value="登录">
    </form>
</body>
</html>

六、总结

通过本项目的设计与实现,我们可以看到Java Servlet与MySQL在开发Web应用中的强大能力。尽管这是一个简单的人才招聘网站,但它为今后开发更复杂的系统奠定了基础。项目中还可以扩展更多功能,例如职位发布、简历管理等,未来可以继续完善。希望这样的项目能够帮助更多人了解并掌握Java Web开发技术。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部