基于JavaWeb的网上招聘系统的设计与实现

分享一波项目~~“基于Web的小型企业招聘系统开发“。

该项目是基于“SpringMvc+Spring+Mybatis”的技术架构,使用Maven进行开发的项目。

前端采用传统的html+css的技术,后台是用h+的boostrap技术框架。

该系统可分为四大部分:求职者部分、企业端部分、后台管理部分

想要学习的可以下载源码看看

该项目的演示视频可以点击如下按钮查看:

数据流条目如表4-1所示

基于JavaWeb的网上招聘系统的设计与实现

代码已经上传github,下载地址:https://github.com/21503882/shopping

 

基于JavaWeb的网上招聘系统的设计与实现

基于JavaWeb的网上招聘系统的设计与实现

一些重要的数据库表的说明

表4-1 数据流条目表
名称    组成
个人信息    账号+密码+姓名+性别+学校+生日+专业+电子邮件+薪资要求+联系方式+个人评价
新的个人信息    姓名+性别+学校+生日+专业+电子邮件+薪资要求+联系方式+个人评价
登录信息    账号+密码
检索信息    职位类别+薪资范围+截止时间
企业职位信息    公司名称+公司地址+职位需求+电子邮箱+联系方式+薪资待遇|+公司简介
应聘信息    个人信息+企业职位信息

基于JavaWeb的网上招聘系统的设计与实现

数据项如表4-2所示。
表4-2 数据项表
名称    类型    长度
账号    字符型    {字母}410
密码    数字型    不为零

数据存储条目如表4-3所示。
表4-3数据存储条目表
文件名    组成    组成方式
个人信息表    id+账号+密码+姓名+性别+学校+生日+专业+电子邮件+薪资要求+联系方式 +个人评价    索引文件,以id为主键
雇佣表    id+个人表的id+企业表的id    索引文件,以id为主键

加工条目如表4-4所示。
表4-4部分加工条目表
加工名    编号    输入    输出    加工逻辑
注册    1    个人信息    个人信息表    IF信息合法
THEN录入数据库
ELSE 重新输入新的合法信息
ENDIF
登录    2    登录信息        IF账号、密码与数据库中的信息匹配
THEN准予登录,并跳转到主页面
ELSE重新输入合法信息
ENDIF
修改个人信息    3    新的个人信息    个人信息表    IF信息合法
THEN录入数据库
ELSE 重新输入新的合法信息
ENDIF
职位查询    4    检索信息    企业职位信息    IF检索信息不为空
THEN按照相应的检索条件检索企业职位并返回给用户
ELSE按照默认方式排列企业职位信息并返回给用户
ENDIF
下载简历    7        个人信息    返回当前用户的简历并下载
向企业应聘    9    应聘信息    应聘表    根据求职者编号和企业编号录入信息
 

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import tyut.tools.WordGenerator;

/**
 * Servlet implementation class DownloadServlet
 */
public class DownloadServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public DownloadServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doPost(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
         Map<String, Object> map = new HashMap<String, Object>();  
         Enumeration<String> paramNames = request.getParameterNames();  
         // 通过循环将表单参数放入键值对映射中  
         while(paramNames.hasMoreElements()) {  
             String key = paramNames.nextElement();  
             String value = request.getParameter(key);  
             map.put(key, value);  
         }  
             // 提示:在调用工具类生成Word文档之前应当检查所有字段是否完整  
            // 否则Freemarker的模板引擎在处理时可能会因为找不到值而报错 这里暂时忽略这个步骤了  
            File file = null;  
            InputStream fin = null;  
            ServletOutputStream out = null;  
            try {  
                // 调用工具类WordGenerator的createDoc方法生成Word文档  
                file = WordGenerator.createDoc(map, "resume");  
                fin = new FileInputStream(file);  
                  
                response.setCharacterEncoding("utf-8");  
                response.setContentType("application/msword");  
                // 设置浏览器以下载的方式处理该文件默认名为resume.doc  
                response.addHeader("Content-Disposition", "attachment;filename=resume.doc");  
                  
                out = response.getOutputStream();  
                byte[] buffer = new byte[512];  // 缓冲区  
                int bytesToRead = -1;  
                // 通过循环将读入的Word文件的内容输出到浏览器中  
                while((bytesToRead = fin.read(buffer)) != -1) {  
                    out.write(buffer, 0, bytesToRead);  
                }  
            } finally {  
                if(fin != null) fin.close();  
                if(out != null) out.close();  
                if(file != null) file.delete(); // 删除临时文件  
            }  
    } 
//        WordUtils.exportMillCertificateWord(request,response,map);  
//    }
}
 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="css/base.css" />
    <link rel="stylesheet" href="css/login.css" />
    <style type="text/css">
    a:link {
     font-size: 12px;
     color: #000000;
    text-decoration: none;
    }
    a:visited {
    font-size: 12px;
    color: #000000;
     text-decoration: none;
    }
    a:hover {
     font-size: 12px;
     color: #999999;
     text-decoration: none;
    }
    </style>
    <title>网上招聘系统</title>
</head>
<body>
    <% 
        Cookie[] cookies = request.getCookies();
        String username = ""; 
        String password = ""; 
        if(cookies!=null){
            for(Cookie c:cookies){
                if("username".equals(c.getName())){
                    username = c.getValue();
                }
                if("password".equals(c.getName())){
                    password = c.getValue();
                }
            }
        }
    %>
    <div id="container">
        <div id="bd">
            <form method="post" action="loginServlet">
            <div class="login">
                <div class="login-top"><h1 class="logo"></h1></div>
                <div class="login-input">
                    <p class="user ue-clear">
                        <label>用户名</label>
                        <input type="text" name="username" value="<%=username %>"/>
                    </p>
                    <p class="password ue-clear">
                        <label>密&nbsp;&nbsp;&nbsp;码</label>
                        <input type="password" name="password" value="<%=password %>"/>
                    </p><br>
                    <label style="font-size:16px">&nbsp;类&nbsp;&nbsp;&nbsp;型</label>
                    &nbsp;&nbsp;&nbsp;<input type="radio" value="个人" name="type" checked/><label style="font-size:16px">个人
                    <input type="radio" value="公司" name="type"/><label style="font-size:16px">公司
                </div>
                <div class="login-btn ue-clear">
                    <input type="submit" style="width:117px;height:40px;border-radius:10px;background-color:#2E84CD;color:white" value="登录">
                    <input type="checkbox" name="rem" id="remember"/>
                    <label for="remember" style="font-size:15px">记住密码</label>
                      <a style="font-size:15px;position:relative;left:100px"  href="javascript:void(0)" οnclick="tiaozhuan()">
                      <label>&nbsp;&nbsp;&nbsp;&nbsp;点击注册</label></a>
                </div>
                   
            </div>
            </form>
        </div>
    </div>
</body>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript">
var height = $(window).height();
$("#container").height(height);
$("#bd").css("padding-top",height/2 - $("#bd").height()/2);

$(window).resize(function(){
    var height = $(window).height();
    $("#bd").css("padding-top",$(window).height()/2 - $("#bd").height()/2);
    $("#container").height(height);
    
});

$('#remember').focus(function(){
   $(this).blur();
});

$('#remember').click(function(e) {
    checkRemember($(this));
});

function checkRemember($this){
    if(!-[1,]){
         if($this.prop("checked")){
            $this.parent().addClass('checked');
        }else{
            $this.parent().removeClass('checked');
        }
    }
}
function tiaozhuan(){
    var type=$("input[name='type']:checked").val();
    console.log(type)
    if(type=="个人")
        location.href="html/register.html"
    else
        location.href="html/c_register.html"
}
</script>
</html>

利用互联网进行企业招聘或个人求职已经成为普遍现象,互联网招聘打破了地域界限,节省了企业或者个人大量的时间和精力,在未来具有良好的市场需求。Java语言具有稳定性高、可靠性好、实用性强的特点,利用该工具设计求职招聘系统,可实现企业用户、普通用户、求职者的基本功能需求,因此具有良好的发展前景。