基于Java+Servlet+MySQL的人才招聘网站的设计与实现
一、项目背景
随着互联网的发展,人才招聘市场也发生了巨大的变化。传统的人才招聘方式已经越来越不能满足企业与求职者的需求,因此,基于网络的人才招聘网站应运而生。本项目旨在设计并实现一个简单的招聘网站,主要采用Java、Servlet以及MySQL作为后端技术。
二、项目架构
本项目的架构主要分为前端与后端两部分:
- 前端:主要负责用户与系统的交互,使用HTML、CSS和JavaScript构建页面。
- 后端:使用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开发技术。