基于JavaWeb Mybatis+MVC(JSP + servlet + javabean)的高校就业管理系统(含项目源码)

项目简介

基本功能简介

该高校就业管理系统项目共分为三部分,分别为:学生系统、管理员系统、企业系统。
1.首页:主要分为公告信息,招聘信息和用户登录三部分,公告信息展示最近时间内学校发布的一些公告等,招聘信息主要展示一些企业的基本信息和招聘职位信息,可供查看,用户登录主要进行学生,企业和管理员的注册及登录等工作。
2.学生用户:学生可以查看并修改个人信息,同时能够查看所有企业的招聘信息,对自己心仪的公司可以进行投递简历等操作,可以选择对就业信息的填写以及查看功能,也可以选择退出登录返回到主界面。
3.企业用户:企业用户能够管理本企业的职位信息,并对公司基本信息进行修改保存,还可以查看本公司的应聘信息,并进行相应的选择,对心仪应聘者发送offer等操作,以及退出登录返回到主界面。
4.管理员用户:管理员可以对学生和企业的基本信息进行增删改查等操作,也可以查看学生的就业基本信息,同时管理员可进行添加管理员的操作,通过注册登录添加管理员,最后退出登录返回主界面。

项目要求

1.熟练掌握MVC模式的使用,掌握JSP,Servlet等语法使用;
2.掌握项目配置Tomcat的基本步骤;
3.了解并掌握idea等开发工具;
4.掌握并熟练使用Mybatis

概要设计

数据模型(E-R图)

在这里插入图片描述在这里插入图片描述

数据库结构设计

1.student表
在这里插入图片描述

2.Company表:
在这里插入图片描述
3.Companyposition表:
在这里插入图片描述
4.Offer表:
在这里插入图片描述
5.Admin表:
在这里插入图片描述

主要页面展示

1.首页面
在这里插入图片描述
2.登陆页面
在这里插入图片描述

3.学生页面
在这里插入图片描述
4.企业页面
在这里插入图片描述

5.管理员页面
在这里插入图片描述

项目实现

本项目使用的是Idea编译器,以下所有示例截图等都为idea。

创建项目

1.创建maven项目
在这里插入图片描述在这里插入图片描述在这里插入图片描述
填写项目名称后,项目便创建完成。
待项目缓冲完成后,打开pom.xml文件,为其引入所需要的依赖等。可以直接复制下面内容。

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.1</version>
    <scope>provided</scope>
  </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.3.0</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.38</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.12</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.12</version>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>1.3.5</version>
    </dependency>
    <dependency>
      <groupId>cglib</groupId>
      <artifactId>cglib</artifactId>
      <version>3.2.2</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>RELEASE</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>
</project>

在这里插入图片描述
填写的所有Java源码放在Java文件夹里面,创建resource文件夹,目的为配置Mapper的xml文件.设为资源根目录:右击rescource文件
在这里插入图片描述
在里面创建一个文件:mybatis-config.xml用来配置信息,连接数据库和使用某个mapper文件等功能

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--数据源配置   属性有resource 和 url  -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="UNPOOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                //该处填写自己对应的数据库名称和数据库账号密码
                <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf8"/>
                <property name="username" value="root"/>
                <property name="password" value=""/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="Mapper/CompanyMapper.xml"/>
        <mapper resource="Mapper/StudentMapper.xml"/>
        <mapper resource="Mapper/AdminMapper.xml"/>
        <!--注解方式可直接找到  xml和注解位置不同-->
        <!--package方式:批量的mapper映射遵循的规则:将mapper.xml和mapper.java 放在
          同一个目录下,且文件名相同-->
        <!--<package name="tk.mybatis.simple.mapper"/>-->
        <!--<package name="mapper"/>-->
    </mappers>
</configuration>

其他详细有关如何创建maven项目和有关tomcat如何配置等问题可参考《Mybatis从入门到精通》等其他书籍,本篇文章不在赘述。

项目结构展示

在这里插入图片描述在这里插入图片描述在这里插入图片描述

项目关键代码讲解

由于该项目代码众多,本博客会着重重要的代码进行阐述,在文章的最后会附上该项目的全部代码。

首页代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page isELIgnored="false" %>

<html>
<head>
    <title>高校就业管理系统</title>
</head>
<body>
<h1 align="center"><font color="#7fffd4">欢迎来到高校就业管理系统</font> </h1>
<br>
<h4 align=right><a href="index.jsp">首页</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="jspdemo/workdemo/Announcement.jsp">公告信息</a>
    &nbsp;&nbsp;|&nbsp;&nbsp;<a href="/RecruitServlet?action=showCompanies">招聘信息</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/jspdemo/LoginServlet.jsp">用户登录</a>
</h4>
<hr>
<center><img src="image/13453678.jpeg" width="800"  ></center>
</body>
</html>

显示全部公司招聘信息在servlet中:

package servlet.student;

import Mapper.CompanyMapper;
import Mapper.StudentMapper;
import bean.Company;
import bean.CompanyInformation;
import bean.Information;
import org.apache.ibatis.session.SqlSession;
import servlet.Init;
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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.SQLException;
import java.util.List;

@WebServlet("/RecruitServlet")
public class RecruitServlet2 extends HttpServlet {
    SqlSession sqlSession ;
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       //中文乱码解决方法
        response.setContentType("text/html;charset=utf-8");
        request.setCharacterEncoding("utf-8");
        sqlSession = servlet.Init.before();
        String action = request.getParameter("action");
        try {
            if (action != null) {
                Method method = this.getClass().getDeclaredMethod(action, HttpServletRequest.class, HttpServletResponse.class);
                method.invoke(this, request, response);
            }
        }catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
    }
    //查看所有公司信息
    public void showCompanies(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        if(username!=null) {
            request.setAttribute("username", username);
        }
        //CompanyDao companyDao=new CompanyDao();

           // List<Company> company = companyDao.showAllCompanies();
            CompanyMapper mapper = sqlSession.getMapper(CompanyMapper.class);
            List<Company> company = mapper.showAllCompanies();
            HttpSession session = request.getSession();
            session.setAttribute("company",company);
            // response.sendRedirect("jspdemo/student/showRecruit.jsp");
            request.getRequestDispatcher("jspdemo/student/showRecruit.jsp").forward(request,response);
    }

    //查看某个公司的就业信息
    public void showCompanyInfo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       // CompanyDao companyDao=new CompanyDao();
        //企业用户名
        String cusername = request.getParameter("cusername");
        //学生用户名
        String susername = request.getParameter("susername");
        request.getSession().setAttribute("susername",susername);
          //  List<CompanyInformation> information = companyDao.showCompanyInformaition(cusername);
            CompanyMapper mapper = sqlSession.getMapper(CompanyMapper.class);
            List<CompanyInformation> information = mapper.showCompanyInformaition(cusername);
            HttpSession session = request.getSession();
            session.setAttribute("information",information);
            // response.sendRedirect("jspdemo/student/showRecruit1.jsp");
            request.getRequestDispatcher("jspdemo/student/showRecruit1.jsp").forward(request,response);
    }
    //查看学生的公司投递情况
    public void showStuRequestJob(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
        //用户名
        String username = request.getParameter("username");
        request.setAttribute("username",username);
        //List<CompanyInformation> companyInformations = studentDao.SearchRequestJob(username);
        SqlSession sqlSession = Init.before();
        StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
        List<CompanyInformation> companyInformations = mapper.searchRequestJob(username);
        request.getSession().setAttribute("companyInformations",companyInformations);
        request.getRequestDispatcher("jspdemo/student/stuRequestJob.jsp").forward(request,response);
    }

    //查看学生的公司录取情况
    public void showStuResponseJob(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
       // CompanyDao companyDao=new CompanyDao();
        //用户名
        String username = request.getParameter("username");
        request.setAttribute("username",username);
       // List<CompanyInformation> information = companyDao.showResponseOffers(username);
        CompanyMapper mapper = sqlSession.getMapper(CompanyMapper.class);
        List<CompanyInformation> information = mapper.showResponseOffers(username);
        request.getSession().setAttribute("information",information);
        request.getRequestDispatcher("jspdemo/student/showStuResponseJob.jsp").forward(request,response);
    }
    //更新学生的工作岗位情况
    public void updateStuJob(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
        //用户名
        String username = request.getParameter("susername");
        String jobName = request.getParameter("username");
        String jobId = request.getParameter("jobId");
        SqlSession sqlSession = Init.before();
        StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
        mapper.updateStuJob(jobName, username,jobId);
        sqlSession.commit();
        request.getRequestDispatcher("/RecruitServlet?action=showGetJob&username="+username).forward(request,response);
    }

    //显示学生的入选工作信息
    public void showGetJob(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
        String username = request.getParameter("username");
      //  StudentDao studentDao=new StudentDao();
        //Information information = studentDao.showJob(username);
        SqlSession sqlSession = Init.before();
        StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
        Information information = mapper.showJob(username);
        PrintWriter out = response.getWriter();
        if(information!=null) {
            out.println("<h1 align='center'>你选择的工作信息如下</h1><hr><br>");
            out.println("<h4 align='center'>公司用户名:" + information.getUsername() + "</h4>");
            out.println("<h4 align='center'>公司名称:" + information.getName() + "</h4>");
            out.println("<h4 align='center'>岗位编号:" + information.getId() + "</h4>");
            out.println("<h4 align='center'>岗位名称:" + information.getPosition() + "</h4>");
            out.println("<h4 align='center'>薪水:" + information.getSalary() + "</h4>");
        }
        else {
            out.println("你现在还没有进入任何公司哦,快去投简历吧-_-");
        }
        out.println("<h4 align=\"center\"><a href=http://localhost:8080/jspdemo/studentShow.jsp?username=" + username + ">返回首页</a>\n" +
                "</h4>");
    }
}


<%@ page import="java.net.URLDecoder" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 2020/12/14
  Time: 15:41
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>

<html>
<head>
    <title>查看公司招聘信息</title>
</head>
<body>
<h1 align="center"><font color="blue">
    欢迎来到高校就业信息系统</font> </h1><br>
<table  align="center" bgcolor="#7fffd4">
    <tr>
        <th>&nbsp;&nbsp;账号&nbsp;&nbsp;</th>
        <th>&nbsp;&nbsp;公司名称&nbsp;&nbsp;</th>
        <td>&nbsp;&nbsp;公司简介&nbsp;&nbsp;</td>
        <td>&nbsp;&nbsp;联系人&nbsp;&nbsp;</td>
        <td>&nbsp;&nbsp;联系电话&nbsp;&nbsp;</td>
        <td>&nbsp;&nbsp;工作地点&nbsp;&nbsp;</td>
        <td>&nbsp;&nbsp;需要岗位数&nbsp;&nbsp;</td>
        <td colspan="4">操作</td>
    </tr>
    <c:forEach items="${sessionScope.company}" var="inf">
        <tr>
            <td>&nbsp;&nbsp;${inf.username}&nbsp;&nbsp;</td>
            <td>&nbsp;&nbsp;${inf.name}&nbsp;&nbsp;</td>
            <td>&nbsp;&nbsp;${inf.introduce}&nbsp;&nbsp;</td>
            <td>&nbsp;&nbsp;${inf.contact}&nbsp;&nbsp;</td>
            <td>&nbsp;&nbsp;${inf.telephone}&nbsp;&nbsp;</td>
            <td>&nbsp;&nbsp;${inf.place}&nbsp;&nbsp;</td>
            <td>&nbsp;&nbsp;${inf.positionCount}&nbsp;&nbsp;</td>
            <td><a href="/RecruitServlet?action=showCompanyInfo&cusername=${inf.username}&susername=${requestScope.username}">查看职位信息</a></td>
        </tr>
    </c:forEach>
</table>
<h4 align="center">
    <c:if test="${not empty requestScope.username}">
        <a href="http://localhost:8080/jspdemo/studentShow.jsp?username=${requestScope.username}">返回首页</a>
    </c:if>
    <c:if test="${ empty requestScope.username}">
        <a href="http://localhost:8080">返回首页</a>
    </c:if>
     </h4>
</body>
</html>


页面内容展示如下:
在这里插入图片描述用户登录页面:

<%@ page import="java.net.URLEncoder" %>
<%@ page import="java.io.PrintWriter" %><%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 2020/10/12
  Time: 19:49
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8" language="java" %>
<%@page isELIgnored="false" %>

<html>
<head>
    <title>用户登录页面</title>
</head>
<script type="text/javascript">
    function validate() {
        if(login.username1.value===""){
            alert("账号不能为空");
            return;
        }
        if(login.passwd.value===""){
            alert("密码不能为空");
            return;
        }
        if(login.code.value===""){
            alert("请输入正确的验证码");
            return;
        }
        login.submit();
    }
    function refresh() {
        login.imgValidate.src="index.jsp?id="+Math.random();
    }
</script>
<h1 align="center"><font color="#7fffd4">欢迎来到高校就业管理系统</font> </h1>
<br><hr>


<%   response.setCharacterEncoding("utf-8"); %>
<form name="login" action="/LoginCl" method="post">
    <h3 align="center"> 请选择你的身份进行登录:
        <input name="identity" type="radio" value="学生用户" checked>学生用户
        <input name="identity" type="radio" value="企业用户" >企业用户
        <input name="identity" type="radio" value="管理员" >管理员</h3>
    <h4 align="center">
    用户名:<input type="text" name="username1"><br><br>
    密码:<input type="password" name="passwd"><br><br>
    <input type="checkbox" name="keep" >两周内免登陆<br><br>
    验证码:<input type="text" name="code" size=10>
    <%--点击图片可进行验证码刷新--%>
    <img name="imgValidate" src = "code.jsp" onclick="refresh()" ><br>
   <%--注意此处的button和submit的区别--%>
   <input type="button" value="登录"  onclick="validate()">
    </h4>
</form>
    <%--<%
        String username = null;
        String password = null;
        String identity=null;
        Cookie[] cookies = request.getCookies();
        for (int i = 0; i < cookies.length; i++) {
            PrintWriter out1 = response.getWriter();
            out1.println(cookies[i].getName()+" "+cookies[i].getValue());
            if ("username".equals(cookies[i].getName())) {
                username = cookies[i].getValue();
            } else if ("password".equals(cookies[i].getName())) {
                password = cookies[i].getValue();
            }
            if (username != null && password != null) {
                 if("identity".equals(cookies[i].getName()))
                 {
                     identity=cookies[i].getValue();
                     if(identity.equals("学生用户")){
                     response.sendRedirect("studentShow.jsp");
                 }
                  else if (identity.equals("企业用户")) {

                 } else {
                     response.sendRedirect("adminSystem/admin.jsp");
                 }
                 }
                 }
        }
    %>--%>
<form action="registerChoose.jsp" method="post">
    <h4 align="center"><input  type="submit" value="注册"></h4>
</form>
</body>
</html>

在这里插入图片描述用户可以选择自己的身份进行登录,不同的身份进入的页面不同
注册页面:

<%@ page language="java" pageEncoding="gb2312" %>
<%@page isELIgnored="false" %>

<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <base href="<%=basePath%>">
    <title>学生信息注册</title>
    <script type="text/javascript" >
        function changeMajor(){
//JS中的数组可以采用标识符代替
//根据用户选择的value值,与数组下标比较,从而找出学院对应的专业
            var school=document.form.readerSchool.value;
            var majorList=new Array();
            majorList['通信与信息工程学院']=['通信工程','电子信息工程','信息工程','广播电视工程','通信与信息类','通信与信息类实验班','通信学院卓越工程师班','通信学院IT精英班','通信学院国际实验班','电子信息工程(通信技术)','电子信息工程(应用电子技术)','电子信息工程(实验班)'];
            majorList['光电工程学院']=['光信息科学与技术','电子科学与技术','电磁场与无线技术','电子工程类','电子工程实验班'];
            majorList['经济管理学院']=['信息管理与信息系统','会计学','经济学','市场营销','工商管理','电子商务','工程管理','信息管理类','工商管理类','物流管理','国际化会计人才培养实验班','工商管理实验班','经济学实验班','市场营销专业实验班'];
            majorList['计算机科学与工程学院']=['计算机科学与技术',,'网络工程','信息安全','探测与指导技术',,'计算机科学与技术卓越班','软件工程(卓越班)'];
            majorList['外国语学院']=['英语','英语类','英语(商贸)'];
            majorList['生物信息学院']=['生物医药工程','生物技术','制药工程','生物信息学','生物技术与制药类','生物技术(生物信息学方向)','生物制药类实验班'];
            majorList['法学院']=['法学','知识产权学','法学类'];
            majorList['自动化学院']=['自动化','测控技术与仪器','电气工程与自动化','机械设计制造及其自动化','物联网工程','自动化与电气工程类','自动化与电气工程类实验班','自动化学院卓越工程师班','电气工程与自动化(电气技术)','电气工程与自动化(电机电器)','电气工程与自动化(实验班)'];
            majorList['体育学院']=['社会体育'];
            majorList['数理学院']=['应用物理学','信息与计算科学','数学与应用数学','信息显示与光电技术','数理科学与信息技术类','数理科学与信息技术基础班','信息与计算科学专业实验班'];
            majorList['传媒艺术学院']=['广播电视编导','动画','环境设计','视觉传达','艺术设计(网络)','艺术设计类','编导改革实验班'];
            majorList['国际半导体学院']=['电子科学与技术','微电子学','集成电路工程类','集成电路工程类实验班','微电子科学与工程实验班'];
            majorList['国际学院']=['英语(中加)'];
            majorList['研究生院']=['通信与信息工程','电子与信息工程','计算机科学与技术','计算机技术','软件工程','先进制造技术'];
            document.form.readerMajor.options.length=0;
//根据学院下拉框的值,获取对应数组的索引标识
            var pIndex=document.form.readerSchool.value;
            var newOption;
            document.form.readerMajor.options.length=0;//清除选项
//数组的读取和数字索引方式相同
            for(var j in majorList[pIndex])
            {
                newOption=new Option(majorList[pIndex][j],majorList[pIndex][j]);
                document.form.readerMajor.options.add(newOption);//动态添加选项
            }
        }
    </script>
</head>
<%--<body bgcolor="white" text="#FF0000" background="image/true.jpg">--%>
<body>
    <h1 align="center"><font color="#8a2be2">欢迎来到学生用户注册页面</font> </h1>
    <script language="JavaScript" type="text/javascript">
        function checkPassword() {
                   var ps=/^[A-Za-z0-9]{6,20}$/;
                if (!ps.exec(register.password1.value)) {
                    alert("密码必须同时包含大小写字母和数字且长度应该在6-20之间");
                    return;
                }
            register.submit();
        }
    </script>
<form action="/jspdemo/registerMessage.jsp" name="form" method="post">
    <%
        String u = request.getParameter("u");
    out.println("<input type='hidden' name='u' value="+u+">");
    %>

    <table  bgcolor="#7fffd4"  width="600" align="center">
        <tr>
            <td>账号</td>
            <td><input type="text" name="username"></td>
        </tr>
        <tr><td>密码(长度大于6且必须有字母大小写)</td>
            <td><input type="password" name="password1"></td>
        </tr>
        <tr>
            <td>姓名</td>
            <td><input type="text" name="name"></td>
        </tr>
        <tr>
            <td>性别</td>
            <td><input name="sex" type="radio" value="男" checked><input name="sex" type="radio" value="女" ></td>
        </tr>
        <tr>
            <td>出生日期</td>
            <td><input type="text" name="data"></td>
        </tr>
        <tr>
            <td>学号</td>
            <td><input type="text" name="id"></td>
        </tr>
        <tr>
            <td>电话</td>
            <td><input type="text" name="telephone"></td>
        </tr>
        <tr>
            <td>家庭住址</td>
            <td><input name="address" type="text"><br></td>
        </tr>
        <tr>
            <td>院系</td>
            <td><select name="readerSchool" id="readerSchool" onChange="changeMajor()">
                <option>--请选择学院--</option>
                <option value="通信与信息工程学院">通信与信息工程学院</option>
                <option value="光电工程学院">光电工程学院</option>
                <option value="经济管理学院">经济管理学院</option>
                <option value="计算机科学与工程学院">计算机科学与工程学院</option>
                <option value="外国语学院">外国语学院</option>
                <option value="生物信息学院">生物信息学院</option>
                <option value="法学院">法学院</option>
                <option value="自动化学院">自动化学院</option>
                <option value="体育学院">体育学院</option>
                <option value="数理学院">数理学院</option>
                <option value="传媒艺术学院">传媒艺术学院</option>
                <option value="国际半导体学院">国际半导体学院</option>
                <option value="国际学院">国际学院</option>
                <option value="研究生院">研究生院</option>
            </select></td>
        </tr>
        <tr>
            <td>专业</td>
            <td><select name="readerMajor" id="readerMajor" onChange="myfun1()">
                <option>--请选择专业--</option>
            </select></td>
        </tr>
        <tr>
            <td>班级</td>
            <td><select name="class" >
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
                <option value="8">8</option>
                <option value="9">9</option>
                <option value="10">10</option>
                <option value="11">11</option>
                <option value="12">12</option>
                <option value="13">13</option>
                <option value="14">14</option>
                <option value="10">15</option>
                <option value="11">16</option>
                <option value="12">17</option>
                <option value="13">18</option>
                <option value="14">19</option>
                <option value="10">20</option>
                <option value="11">21</option>
            </select></td>
        </tr>
        <tr>
            <td>特长</td>
            <td><input name="special" type="text"></td>
            </tr>
        <tr>
            <td>是否就业</td>
            <td><input name="job" type="radio" value="是" ><input name="job" type="radio" value="否" checked ></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" value="注册" onclick="checkPassword()"></td>
        </tr>
    </table><br>
</form>
</body>
</html>

页面展示:
在这里插入图片描述注册的用户不同,页面不同
1>.学生用户
在这里插入图片描述其院系和专业采用二级联动,上面的内容确定后,下面的也会跟着变成其对应的内容。
2>企业注册
在这里插入图片描述在这里插入图片描述填写相关内容即可完成注册。下次用户可以直接登录。

学生页面

<%@ page import="java.net.URLDecoder" %><%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 2020/12/9
  Time: 16:23
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>

<html>
<head>
    <title>学生界面</title>
</head>
<body bgcolor="white" text="#FF0000" background="image/hhhhh.png">
<h1><font color="blue">
    欢迎学生:<%=URLDecoder.decode(request.getParameter("username"),"utf-8")%> 来到高校就业信息系统</font> </h1><br>
<%
    String uname = request.getParameter("username");
    session.setAttribute("username",uname);
%>
<h4 align=right><a href="/showStudentCl?action=show&username=${sessionScope.username}">个人信息</a>
   &nbsp;&nbsp;|&nbsp;&nbsp;<a href="/RecruitServlet?action=showCompanies&username=${sessionScope.username}">查看招聘信息</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/RecruitServlet?action=showStuRequestJob&username=${sessionScope.username}">投递简历信息</a>
    &nbsp;&nbsp;|&nbsp;&nbsp;<a href="/RecruitServlet?action=showStuResponseJob&username=${sessionScope.username}">填写就业信息</a>&nbsp;&nbsp;|&nbsp;&nbsp;
    <a href="/RecruitServlet?action=showGetJob&username=${sessionScope.username}">查看就业信息</a>&nbsp;&nbsp;|&nbsp;&nbsp;
    <a href="http://localhost:8080/index.jsp">退出登录</a>
</h4>
<hr><br>
<center><img src="image/232040298490.jpg" width="1000"  ></center>
</body>
</html>

在这里插入图片描述功能一:学生修改查看个人信息

package servlet.student;

import Mapper.StudentMapper;
import bean.Student;

import org.apache.ibatis.session.SqlSession;
import servlet.Init;
import javax.servlet.ServletException;
//import javax.servlet.annotation.WebServlet;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.SQLException;


@WebServlet("/showStudentCl")
public class showStudentCl extends HttpServlet {
   SqlSession sqlSession ;
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request,response);
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //中文乱码解决方法
        response.setContentType("text/html;charset=utf-8");
        request.setCharacterEncoding("utf-8");
         sqlSession = Init.before();
        String action = request.getParameter("action");
        if (action == null) {
            modify(request, response);
        } else {
            try {
                Method method = this.getClass().getDeclaredMethod(action, HttpServletRequest.class, HttpServletResponse.class);
                method.invoke(this, request, response);
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            }
        }
    }
    //显示所有信息
    protected void show(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        SqlSession sqlSession = Init.before();
        StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
        String username = request.getParameter("username");
        String u = request.getParameter("u");
        System.out.println(username+"-----");
       // StudentDao studentDao = new StudentDao();
        Student student = mapper.showStudent(username);
         //       student = studentDao.showStudent(username);

        HttpSession session = request.getSession();
        session.setAttribute("student", student);
        // request.getRequestDispatcher("jspdemo/modifyInformation.jsp").forward(request,response);
        if (u == null) {
            response.sendRedirect("jspdemo/modifyInformation.jsp");
        }
        //管理员页面
        else {
            response.sendRedirect("jspdemo/modifyInformation.jsp?u=1");
        }
    }
    //修改信息
    protected void modify(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("gb2312");
        String username=request.getParameter("username");
        System.out.println(username+"-----");
        String  password=request.getParameter("password");
        String name = request.getParameter("name");
        String sex = request.getParameter("sex");
        String data = request.getParameter("data");
        String id = request.getParameter("id");
        String telephone = request.getParameter("telephone");
        String address = request.getParameter("address");
        String school = request.getParameter("school");
        String major = request.getParameter("major");
        String class1 = request.getParameter("class1");
        String special = request.getParameter("special");
        String job = request.getParameter("job");
        String jobName = request.getParameter("jobName");
        String jobId = request.getParameter("jobId");
        //StudentDao studentDao=new StudentDao();
        Student student=new Student(username,password,name,sex,data,id,telephone,address,school,major,class1,special,job,jobName,jobId);
       // System.out.println(student);
       // studentDao.updateStudent(student);
        SqlSession sqlSession = Init.before();
        StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
        mapper.updateStudent(student);
        sqlSession.commit();
        request.getRequestDispatcher("/showStudentCl?action=show&id="+id).forward(request,response);
    }
}

在这里插入图片描述方框内容为可以修改的内容。
功能二:查看公司招聘信息并可以选择公司进行投递简历。
前面已提到改代码,此处不再赘述。
在这里插入图片描述
在这里插入图片描述功能三:查看自己已经投递的简历

package servlet.student;

import Mapper.CompanyMapper;
import Mapper.StudentMapper;
import bean.Company;
import bean.CompanyInformation;
import bean.Information;
import org.apache.ibatis.session.SqlSession;
import servlet.Init;
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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.SQLException;
import java.util.List;

@WebServlet("/RecruitServlet")
public class RecruitServlet2 extends HttpServlet {
    SqlSession sqlSession ;
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       //中文乱码解决方法
        response.setContentType("text/html;charset=utf-8");
        request.setCharacterEncoding("utf-8");
        sqlSession = servlet.Init.before();
        String action = request.getParameter("action");
        try {
            if (action != null) {
                Method method = this.getClass().getDeclaredMethod(action, HttpServletRequest.class, HttpServletResponse.class);
                method.invoke(this, request, response);
            }
        }catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
    }
    //查看所有公司信息
    public void showCompanies(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        if(username!=null) {
            request.setAttribute("username", username);
        }
        //CompanyDao companyDao=new CompanyDao();

           // List<Company> company = companyDao.showAllCompanies();
            CompanyMapper mapper = sqlSession.getMapper(CompanyMapper.class);
            List<Company> company = mapper.showAllCompanies();
            HttpSession session = request.getSession();
            session.setAttribute("company",company);
            // response.sendRedirect("jspdemo/student/showRecruit.jsp");
            request.getRequestDispatcher("jspdemo/student/showRecruit.jsp").forward(request,response);
    }

    //查看某个公司的就业信息
    public void showCompanyInfo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       // CompanyDao companyDao=new CompanyDao();
        //企业用户名
        String cusername = request.getParameter("cusername");
        //学生用户名
        String susername = request.getParameter("susername");
        request.getSession().setAttribute("susername",susername);
          //  List<CompanyInformation> information = companyDao.showCompanyInformaition(cusername);
            CompanyMapper mapper = sqlSession.getMapper(CompanyMapper.class);
            List<CompanyInformation> information = mapper.showCompanyInformaition(cusername);
            HttpSession session = request.getSession();
            session.setAttribute("information",information);
            // response.sendRedirect("jspdemo/student/showRecruit1.jsp");
            request.getRequestDispatcher("jspdemo/student/showRecruit1.jsp").forward(request,response);
    }
    //查看学生的公司投递情况
    public void showStuRequestJob(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
        //用户名
        String username = request.getParameter("username");
        request.setAttribute("username",username);
        //List<CompanyInformation> companyInformations = studentDao.SearchRequestJob(username);
        SqlSession sqlSession = Init.before();
        StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
        List<CompanyInformation> companyInformations = mapper.searchRequestJob(username);
        request.getSession().setAttribute("companyInformations",companyInformations);
        request.getRequestDispatcher("jspdemo/student/stuRequestJob.jsp").forward(request,response);
    }

    //查看学生的公司录取情况
    public void showStuResponseJob(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
       // CompanyDao companyDao=new CompanyDao();
        //用户名
        String username = request.getParameter("username");
        request.setAttribute("username",username);
       // List<CompanyInformation> information = companyDao.showResponseOffers(username);
        CompanyMapper mapper = sqlSession.getMapper(CompanyMapper.class);
        List<CompanyInformation> information = mapper.showResponseOffers(username);
        request.getSession().setAttribute("information",information);
        request.getRequestDispatcher("jspdemo/student/showStuResponseJob.jsp").forward(request,response);
    }
    //更新学生的工作岗位情况
    public void updateStuJob(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
        //用户名
        String username = request.getParameter("susername");
        String jobName = request.getParameter("username");
        String jobId = request.getParameter("jobId");
        SqlSession sqlSession = Init.before();
        StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
        mapper.updateStuJob(jobName, username,jobId);
        sqlSession.commit();
        request.getRequestDispatcher("/RecruitServlet?action=showGetJob&username="+username).forward(request,response);
    }

    //显示学生的入选工作信息
    public void showGetJob(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
        String username = request.getParameter("username");
      //  StudentDao studentDao=new StudentDao();
        //Information information = studentDao.showJob(username);
        SqlSession sqlSession = Init.before();
        StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
        Information information = mapper.showJob(username);
        PrintWriter out = response.getWriter();
        if(information!=null) {
            out.println("<h1 align='center'>你选择的工作信息如下</h1><hr><br>");
            out.println("<h4 align='center'>公司用户名:" + information.getUsername() + "</h4>");
            out.println("<h4 align='center'>公司名称:" + information.getName() + "</h4>");
            out.println("<h4 align='center'>岗位编号:" + information.getId() + "</h4>");
            out.println("<h4 align='center'>岗位名称:" + information.getPosition() + "</h4>");
            out.println("<h4 align='center'>薪水:" + information.getSalary() + "</h4>");
        }
        else {
            out.println("你现在还没有进入任何公司哦,快去投简历吧-_-");
        }
        out.println("<h4 align=\"center\"><a href=http://localhost:8080/jspdemo/studentShow.jsp?username=" + username + ">返回首页</a>\n" +
                "</h4>");
    }
}

在这里插入图片描述功能四:查看公司对其发送的所有offer并选择某公司进行就业,填写就业信息。
调用上文提到的RecruitServlet类中showStuResponseJob方法即可。
在这里插入图片描述

功能五:查看自己的就业信息
调用RecruitServlet类的showGetJob
在这里插入图片描述
至此学生信息功能到此结束。

企业页面

企业首页面:

<%@ page import="java.net.URLDecoder" %><%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 2020/12/11
  Time: 11:10
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>

<html>
<head>
    <title>企业系统</title>
</head>
<body>
<h1><font color="blue">欢迎企业:<%=URLDecoder.decode(request.getParameter("username"),"utf-8")%>来到高校就业信息系统</font> </h1><br>
<h4 align=right>
    <% String username=request.getParameter("username");
    session.setAttribute("username",username);
    out.println("<a href=/ManageCompany?action=check&username="+username+">管理职位信息</a>");
    %>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/ManageCompany?action=showStuCompanyInfo&username=${sessionScope.username}">查看应聘信息</a>
    &nbsp;&nbsp;|&nbsp;&nbsp;<a href="/ManageCompany?action=showAllResponseOffer&username=${sessionScope.username}">查看发送offer</a>&nbsp;&nbsp;|&nbsp;&nbsp;
    <a href="http://localhost:8080/index.jsp">退出登录</a><hr>
</h4>
<center><img src="image/232040298490.jpg" width="1000"  ></center>
</body>
</html>

在这里插入图片描述功能一:管理职位信息:即可以查看并修改企业信息

package servlet.Company;

import Mapper.CompanyMapper;
import bean.Company;
import bean.CompanyInformation;
import bean.stuPosition;
import org.apache.ibatis.session.SqlSession;
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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.SQLException;
import java.util.List;

@WebServlet("/ManageCompany")
public class ManageCompany extends HttpServlet {
    SqlSession sqlSession ;
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //中文乱码解决方法
        response.setContentType("text/html;charset=utf-8");
        request.setCharacterEncoding("utf-8");
        sqlSession = servlet.Init.before();
        String action = request.getParameter("action");
        if (action == null) {
            try {
                modify(request, response);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } else {
            try {
                Method method = this.getClass().getDeclaredMethod(action, HttpServletRequest.class, HttpServletResponse.class);
                method.invoke(this, request, response);
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            }
        }
    }
    //查看信息表
    protected void check(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
        String username = request.getParameter("username");
        String u = request.getParameter("u");
        //CompanyDao companyDao = new CompanyDao();
        //Company company = companyDao.showCompany(username);
        CompanyMapper mapper = sqlSession.getMapper(CompanyMapper.class);
        Company company = mapper.showCompany(username);
        HttpSession session = request.getSession();
        session.setAttribute("company", company);
        // request.getRequestDispatcher("jspdemo/companySystem/ManagePosition.jsp").forward(request,response);
        if (u == null) {
            response.sendRedirect("jspdemo/companySystem/ManagePosition.jsp");
        }
        else {
            response.sendRedirect("jspdemo/companySystem/ManagePosition.jsp?u=1");
        }
    }

    //修改信息表
    protected void modify(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
        String u2 = request.getParameter("u2");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String name = request.getParameter("name");
        String introduce = request.getParameter("introduce");
        String contact = request.getParameter("contact");
        String telephone = request.getParameter("telephone");
        String place = request.getParameter("place");
        String positionCount = request.getParameter("positionCount");
        Company company = new Company(username, password, name, introduce, contact, telephone, place, positionCount);
      //  CompanyDao companyDao = new CompanyDao();
        request.setAttribute("company", company);
        //更新公司信息
       // companyDao.updateCompany(company);
        CompanyMapper mapper = sqlSession.getMapper(CompanyMapper.class);
        int i1 = mapper.updateCompany(company);
        sqlSession.commit();
        //更新公司职位信息
        int count = Integer.parseInt(positionCount);
        String[] ids = new String[count + 1];
        String[] position = new String[count + 1];
        String[] salary = new String[count + 1];
        String[] counts = new String[count + 1];
        //int rows = companyDao.getCompanyInformaitionRows(username);
        int rows = mapper.getCompanyInformaitionRows(username);
        sqlSession.commit();
      //  sqlSession.commit();
        // System.out.println(rows);
        CompanyInformation[] companyInfo = new CompanyInformation[count + 1];
        for (int i = 0; i < count; i++) {
            ids[i] = request.getParameter("id" + String.valueOf(i + 1));
            position[i] = request.getParameter("position" + String.valueOf(i + 1));
            salary[i] = request.getParameter("salary" + String.valueOf(i + 1));
            counts[i] = request.getParameter("count" + String.valueOf(i + 1));
            companyInfo[i] = new CompanyInformation(username, ids[i], position[i], salary[i], counts[i]);
        }
        // 新加了数据 或者是原数量 后面没有的信息要添加到数据库中  rows  数据库中职位的个数
        //  2        3
        if (rows <= count) {
            for (int i = 0; i < count; i++) {
                if (i < rows) {
                   // companyDao.updateCompanyInfo(companyInfo[i]);
                    mapper.updateCompanyInfo(companyInfo[i]);
                    sqlSession.commit();
                } else {
                    //没有该信息 需要进行注册
                   // companyDao.insertPosInformation(companyInfo[i].getUsername(), companyInfo[i].getId(), companyInfo[i].getPosition(), companyInfo[i].getSalary(), companyInfo[i].getCounts());
                mapper.insertPosInformation(companyInfo[i]);
                    sqlSession.commit();
                }
            }
        }
        //职位需求变少了 需要删除后面的数据信息
        // 3        2
        if (rows > count) {
            for (int i = 0; i < count; i++) {
               // companyDao.updateCompanyInfo(companyInfo[i]);
                mapper.updateCompanyInfo(companyInfo[i]);
                sqlSession.commit();
            }
            for (int i = count; i < rows; i++) {
                //删除信息
                //companyDao.delCompanyInformaition(company.getUsername(), String.valueOf(i+1));
            mapper.delCompanyInformaition(company.getUsername(),String.valueOf(i+1));
                sqlSession.commit();
            }
        }
        request.getRequestDispatcher("jspdemo/companySystem/ManagePosition1.jsp?u1="+u2).forward(request, response);
       // System.out.println(u2+"2222222");

    }

    //显示应聘该企业的所有学生的信息
    protected void showStuCompanyInfo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
        String username = request.getParameter("username");
        request.setAttribute("username",username);
       // CompanyDao companyDao=new CompanyDao();
      //  List<stuPosition> stuPositions = companyDao.showRequestOfferStu(username);
        CompanyMapper mapper = sqlSession.getMapper(CompanyMapper.class);
        List<stuPosition> stuPositions = mapper.showRequestOfferStu(username);
        request.getSession().setAttribute("stuPositions",stuPositions);
        request.getRequestDispatcher("jspdemo/companySystem/showStuCompanyInfo.jsp").forward(request, response);
    }
    //向某个学生发送offer
    protected void sendOffer(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
        String su = request.getParameter("su");
        String cu = request.getParameter("cu");
        String id=request.getParameter("id");
        // request.setAttribute("username",username);
       // CompanyDao companyDao=new CompanyDao();

        //companyDao.responseOffer(su,cu,id);
        CompanyMapper mapper = sqlSession.getMapper(CompanyMapper.class);
        mapper.responseOffer(su,cu,id);
        sqlSession.commit();
        response.getWriter().println("你的offer已经发送成功,去看看别的优秀学生吧...<br>");
        response.getWriter().println("<a href=/ManageCompany?action=showStuCompanyInfo&username="+cu+">返回上一页</a>");
    }
//查看发送的所有offer
protected void showAllResponseOffer(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
    String username = request.getParameter("username");
     request.setAttribute("username",username);
   // CompanyDao companyDao=new CompanyDao();
   // List<stuPosition> stuPositions = companyDao.showAllResponseOffers(username);
    CompanyMapper mapper = sqlSession.getMapper(CompanyMapper.class);
    List<stuPosition> stuPositions = mapper.showAllResponseOffers(username);
    request.getSession().setAttribute("stuPositions",stuPositions);
    request.getRequestDispatcher("jspdemo/companySystem/showSendOffer.jsp").forward(request,response);
}

}

在这里插入图片描述
功能二:查看招聘信息 并为其发送offer
调用上面:ManageCompany的showStuCompanyInfo方法即可
在这里插入图片描述功能三:查看发送的所有offer
调用ManageCompany的showAllResponseOffer方法
在这里插入图片描述

管理员页面

<%@ page import="java.net.URLDecoder" %><%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 2020/12/9
  Time: 21:00
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>

<html>
<head>
    <title>管理员界面</title>
</head>
<body>
<%
    String username = request.getParameter("username");
    session.setAttribute("username",username);
%>
<h1><font color="blue">欢迎管理员:<%=URLDecoder.decode(username,"utf-8")%>来到高校就业信息系统</font> </h1><br>

<h4 align=right><a href="/jspdemo/adminSystem/manageStudent.jsp?admin=${sessionScope.username}">管理学生信息</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/manageInformation?action=showAllCompany&admin=${sessionScope.username}">管理企业信息</a>
    &nbsp;&nbsp;|&nbsp;&nbsp;<a href="/manageInformation?action=showAllStuCompany&admin=${sessionScope.username}">查看就业信息</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/jspdemo/adminSystem/registerAdmin.jsp">添加管理员</a>&nbsp;&nbsp;|&nbsp;&nbsp;
    <a href="http://localhost:8080/index.jsp">退出登录</a>
</h4>
<hr>
<center><img src="image/232040298490.jpg" width="1000"  ></center>
</body>

</html>

在这里插入图片描述功能一:管理所有学生信息

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="java.sql.SQLException" %>
<%@ page import="bean.Student" %>
<%@ page import="java.util.List" %>
<%@ page import="servlet.Init" %>
<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="Mapper.StudentMapper" %><%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 2020/12/9
  Time: 21:05
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>

<html>
<head>
    <title>管理学生页面</title>
</head>
<body>
<h1 align="center">管理学生信息页面</h1>
<%
   // StudentDao studentDao=new StudentDao();
       // List<Student> students = studentDao.showAllStudents();
    SqlSession sqlSession = Init.before();
    StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
    List<Student> students = mapper.showAllStudents();
    sqlSession.commit();
    session.setAttribute("students",students);

%>
<table  align="center">
    <tr>
        <th>&nbsp;&nbsp;账号&nbsp;&nbsp;</th>
        <th>&nbsp;&nbsp;密码&nbsp;&nbsp;</th>
        <td>&nbsp;&nbsp;姓名&nbsp;&nbsp;</td>
        <td>&nbsp;&nbsp;性别&nbsp;&nbsp;</td>
        <td>&nbsp;&nbsp;出生日期&nbsp;&nbsp;</td>
        <td>&nbsp;&nbsp;学号&nbsp;&nbsp;</td>
        <td>&nbsp;&nbsp;电话&nbsp;&nbsp;</td>
        <td>&nbsp;&nbsp;家庭住址&nbsp;&nbsp;</td>
        <td>&nbsp;&nbsp;院系&nbsp;&nbsp;</td>
        <td>&nbsp;&nbsp;专业&nbsp;&nbsp;</td>
        <td>班级</td>
        <td>是否就业</td>
        <td>公司</td>
        <td colspan="4">操作</td>
    </tr>
<c:forEach items="${sessionScope.students}" var="student">
    <tr>
        <td>${student.username}</td>
        <td>${student.password}</td>
        <td>${student.name}</td>
        <td>${student.sex}</td>
        <td>${student.data}</td>
        <td>${student.id}</td>
        <td>${student.telephone}</td>
        <td>${student.address}</td>
        <td>${student.school}</td>
        <td>${student.major}</td>
        <td>${student.class1}</td>
        <td>${student.job}</td>
        <td>${student.jobName}</td>
        <td><a href="/showStudentCl?action=show&username=${student.username}&u=1">操作</a></td>
        <td><a href="/manageInformation?action=deleteStudent&username=${student.username}">删除</a> </td>
    </tr>
</c:forEach>
<tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <% request.setAttribute("u",1);%>
    <td><a href="/jspdemo/register.jsp?u=1">添加学生信息</a></td>
</tr>
</table>
<h4 align="center"><a href="http://localhost:8080/jspdemo/adminSystem/admin.jsp?username=${sessionScope.username}">返回首页</a> </h4>
</body>
</html>



在这里插入图片描述操作即对学生信息进行修改,删除删除学生信息,也可以进行添加学生信息。

功能二:管理企业信息,对企业信息进行增删改操作。

package servlet.admin;

import Mapper.CompanyMapper;
import Mapper.StudentMapper;
import bean.Company;
import bean.Student;
import bean.stuJob;
import dao.CompanyDao;
import dao.StudentDao;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import servlet.Init;

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.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.SQLException;
import java.util.List;
/**
 * @author 徐佳欢
 * @createTime 2020/12/15 15:46
 * @description
 */

@WebServlet("/manageInformation")
public class manageInformation extends HttpServlet {
    SqlSession sqlSession;
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     doGet(request,response);
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //中文乱码解决方法
        response.setContentType("text/html;charset=utf-8");
        request.setCharacterEncoding("utf-8");
        sqlSession= servlet.Init.before();
        String action = request.getParameter("action");
            try {
                Method method = this.getClass().getDeclaredMethod(action, HttpServletRequest.class, HttpServletResponse.class);
                method.invoke(this, request, response);
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
        }
    }
    //删除学生信息
    protected void deleteStudent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
       // StudentDao studentDao=new StudentDao();
       // studentDao.deleteStudent(username);
        SqlSession sqlSession = Init.before();
        StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
        mapper.deleteStudent(username);
        sqlSession.commit();
        //返回上个页面
        response.sendRedirect(request.getHeader("Referer"));
    }

    //删除公司信息
    protected void deleteCompany(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
       // CompanyDao companyDao=new CompanyDao();
        //companyDao.deleteCompany(username);
        CompanyMapper mapper = sqlSession.getMapper(CompanyMapper.class);
        mapper.deleteCompany(username);
        sqlSession.commit();
        //返回上个页面
        Object username1 = request.getSession().getAttribute("username");
        response.sendRedirect("/manageInformation?action=showAllCompany&admin="+username1);
    }
    //显示所有企业信息
    protected void showAllCompany(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
        /*CompanyDao companyDao=new CompanyDao();
        List<Company> companies = companyDao.showAllCompanies();*/
        //获取UserMapper的接口
        CompanyMapper mapper = sqlSession.getMapper(CompanyMapper.class);
        List<Company> companies = mapper.showAllCompanies();
        sqlSession.close();
        request.getSession().setAttribute("companies",companies);
       response.sendRedirect("jspdemo/adminSystem/showAllCompany.jsp");
    }
    //显示学生及其对应的就业信息
    protected void showAllStuCompany(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
        //StudentDao studentDao=new StudentDao();
        //List<stuJob> stuJobs = studentDao.showStuJob();
        SqlSession sqlSession = Init.before();
        StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
        List<stuJob> stuJobs = mapper.showStuJob();
        request.getSession().setAttribute("stuJobs",stuJobs);
        response.sendRedirect("jspdemo/adminSystem/showStuCompany.jsp");
    }
}

在这里插入图片描述
功能三:查看学生就业信息
调用manageInformation的showAllStuCompany的方法
在这里插入图片描述功能四:添加管理员

<%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 2020/10/20
  Time: 9:44
  To change this template use File | Settings | File Templates.
--%>
<%@ page language="java" pageEncoding="gb2312" %>
<%@page isELIgnored="false" %>

<html>
<head>
    <title>register</title>
</head>
<body>
    <script language="JavaScript" type="text/javascript">
        function checkPassword() {
                   var ps=/^[A-Za-z0-9]{6,20}$/;
                if (!ps.exec(register.password1.value)) {
                    alert("密码必须同时包含大小写字母和数字且长度应该在6-20之间");
                    return;
                }
            register.submit();
        }
    </script>
    <h1 align="center"><font color="#7fffd4">欢迎来到管理员注册页面</font> </h1><br><hr>
<form name="register" action="registerAdminMessage.jsp" method="post">
    <h4 align="center">
    请输入账号:<input type="text" name="name"><br><br>
    请输入密码(要求:必须包含大小写英文和数字无非法字符,长度大于6位小于20):<input type="password" name="password1"><br><br>
    <input type="button" value="注册" onclick="checkPassword()">
    </h4>
</form>
</body>
</html>

在这里插入图片描述

Mapper配置

1.创建Mapper接口,共分为三个:对应的test为其测试类
在这里插入图片描述1.StudentMapper:

package Mapper;

import bean.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface StudentMapper {
    //显示所有学生信息
    public List<Student> showAllStudents();
    //显示某个学生信息
    public Student showStudent(String username);
    //查找  学生
    public Student searchUser1(@Param("username") String username,@Param("password") String password);
    //查找  企业
    public Company searchUser2(@Param("username")String username,@Param("password")String password);
    //查找  管理员
    public User searchUser3(@Param("username")String username, @Param("password")String password);
    //插入用户
    public void insertUser(Student student);
    //修改数据
    public int updateStudent(Student student);
    //更新学生的就业信息
    public int updateStuJob(@Param("jobName") String jobName,@Param("username") String username,@Param("jobId") String jobId);
    //删除某个学生
    public int deleteStudent(String username);
    //学生向公司发送意愿请求
    public void requestOffer(@Param("susername") String susername,@Param("cusername") String cusername,@Param("id") String id );
    //查找用户投递的公司信息
    public List<CompanyInformation> searchRequestJob(String username);
    //显示某学生的确定公司信息
    public Information showJob(String username);
    //显示所有学生及其工作公司信息
    public List<stuJob> showStuJob();

}

2.CompanyMapper

package Mapper;

import bean.Company;
import bean.CompanyAndInformations;
import bean.CompanyInformation;
import bean.stuPosition;
import org.apache.ibatis.annotations.Param;
import org.junit.runners.Parameterized;

import java.util.List;

public interface CompanyMapper {
    //修改企业信息
    public int updateCompany(Company company);
    //public int updateCompany(CompanyInformation companyInformation);
    //修改企业职位信息
    public int updateCompanyInfo(CompanyInformation companyInformation);

    //显示所有公司信息
    public List<Company> showAllCompanies();

    //插入用户
    public void insertUser(Company company);

    //添加公司职位信息
    public void insertPosInformation(CompanyInformation companyInformation);

    //显示某个公司信息
    public Company showCompany(String username);

    //删除某行数据
    public int delCompanyInformaition(@Param("username") String username,@Param("id") String id);

    //获取职位的个数
    public int getCompanyInformaitionRows(String username);

    //显示其职位信息
    public List<CompanyInformation> showCompanyInformaition(String username);

    //显示所有职位信息
    public List<CompanyAndInformations> showAllCompanyInformaitions();

    //公司向学生发送意愿请求
    public void responseOffer(@Param("susername") String susername, @Param("cusername") String cusername, @Param("id") String id);

    //查看公司向学生发送offer的公司全部信息
    public List<CompanyInformation> showResponseOffers(String username);

    //查看学生应聘本公司的全部信息
    public List<stuPosition> showRequestOfferStu(String username);

    //查看公司发送给学生的所有offer
    public List<stuPosition> showAllResponseOffers(String username);

    //删除某个公司
    public int deleteCompany(String username);


}

3.AdminMapper

package Mapper;

import org.apache.ibatis.annotations.Param;

public interface AdminMapper {
    public void insertUser(@Param("username") String username, @Param("password") String password);

}

2.对应的mapper.xml文件
在这里插入图片描述
1.AdminMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Mapper.AdminMapper">
    <insert id="insertUser">
        insert into admin values(#{username},#{password})
    </insert>
</mapper>

2.CompanyMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Mapper.CompanyMapper">
    <update id="updateCompany" >
      update company set username=#{username},password=#{password},name=#{name},introduce=#{introduce},contact=#{contact},telephone=#{telephone},place=#{place},positionCount=#{positionCount} where username=#{username}
    </update>
    <select id="showAllCompanies" resultType="bean.Company">
        select * from company;
    </select>
    <update id="updateCompanyInfo">
        update companyposition set username=#{username},id=#{id},position=#{position},salary=#{salary},counts=#{counts} where username=#{username} and id=#{id}
    </update>
    <insert id="insertUser">
        insert into company values(#{username},#{password},#{name},#{introduce},#{introduce},#{telephone},#{place},#{positionCount})
    </insert>
    <insert id="insertPosInformation">
        insert into CompanyPosition values(#{username},#{id},#{position},#{salary},#{counts})
    </insert>
    <select id="showCompany" resultType="bean.Company">
        select * from company where username=#{username}
    </select>
    <delete id="delCompanyInformaition" >
        delete from companyposition where username=#{username} and id=#{id}
    </delete>
    <select id="getCompanyInformaitionRows" resultType="Integer">
        SELECT COUNT(*) FROM companyposition WHERE username=#{username}
    </select>
    <select id="showCompanyInformaition" resultType="bean.CompanyInformation">
        select * from companyposition where username=#{username}
    </select>
    <select id="showAllCompanyInformaitions" resultType="bean.CompanyAndInformations">
        select company.username,password,name,introduce,
        contact,telephone,place,positionCount,id,position,salary,counts
        from companyposition,company where
        companyposition.username=company.username
    </select>
    <update id="responseOffer">
        update offer set com=1 where susername=#{susername} and cusername=#{cusername} and id=#{id}
    </update>
    <select id="showResponseOffers" resultType="bean.CompanyInformation">
        SELECT distinct cusername username,companyposition.id,POSITION,salary
         FROM offer INNER JOIN companyposition
          WHERE companyposition.username=offer.cusername AND
          companyposition.id=offer.id  and com=1 AND susername=#{susername}
          ORDER BY cusername DESC
    </select>
    <select id="showRequestOfferStu" resultType="bean.stuPosition">
        SELECT distinct student.username,NAME,sex,DATA,
        sid,telephone,address,school,major,class1,special,
        companyposition.id,POSITION FROM offer,student,companyposition
        WHERE student.username=offer.susername AND
        companyposition.username=offer.cusername AND
         offer.id=companyposition.id AND cusername=#{cusername} ORDER BY susername DESC
    </select>
    <select id="showAllResponseOffers" resultType="bean.stuPosition">
        SELECT student.username,NAME,sex,DATA,sid,telephone,address,
        school,major,class1,special,companyposition.id,POSITION FROM offer,
        student,companyposition WHERE student.username=offer.susername AND
        companyposition.username=offer.cusername AND
        offer.id=companyposition.id AND cusername=#{cusername} and com=1
         ORDER BY susername DESC
    </select>
    <delete id="deleteCompany">
        delete from company where username=#{username}
    </delete>
</mapper>

3.StudentMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Mapper.StudentMapper">
    <resultMap id="student" type="bean.Student">
        <result property="username" column="username"/>
        <result property="password" column="password"/>
        <result property="name" column="name"/>
        <result property="sex" column="sex"/>
        <result property="data" column="data"/>
        <result property="id" column="sid"/>
        <result property="telephone" column="telephone"/>
        <result property="address" column="address"/>
        <result property="school" column="school"/>
        <result property="major" column="major"/>
        <result property="class1" column="class1"/>
        <result property="special" column="special"/>
        <result property="job" column="job"/>
        <result property="jobName" column="jobName"/>
        <result property="jobId" column="jobId"/>
    </resultMap>
<select id="showAllStudents" resultMap="student">
    select * from student
</select>
    <select id="showStudent" resultMap="student">
        select * from student where username=#{username}
    </select>
    <select id="searchUser1" resultType="bean.Student">
        select * from student where username=#{username} and password=#{password}
    </select>
    <select id="searchUser2" resultType="bean.Company">
        select * from company where username=#{username} and password=#{password}
    </select>
    <select id="searchUser3" resultType="bean.User">
        select username name,password pd
         from admin where username=#{username} and password=#{password}
    </select>
    <insert id="insertUser">
        insert ignore  into student values(#{username},#{password},#{name},#{sex},#{data},#{id},#{telephone},#{address},#{school},#{major},#{class1},#{special},#{job},#{jobName},#{jobId})
    </insert>
    <update id="updateStudent">
         update student set password=#{password},name=#{name},sex=#{sex},data=#{data},telephone=#{telephone},address=#{address},school=#{school},major=#{major},class1=#{class1},special=#{special},job=#{job},jobName=#{jobName},jobId=#{jobId} where sid=#{id}
    </update>
    <update id="updateStuJob">
        update student set job="是",jobName=#{jobName},jobId=#{jobId} where username=#{username}
    </update>
    <delete id="deleteStudent">
        delete from student where username=#{username}
    </delete>
    <insert id="requestOffer" >
        insert into offer values(#{susername},#{cusername},#{id},1,0)
    </insert>
    <select id="searchRequestJob" resultType="bean.CompanyInformation">
        SELECT distinct cusername username,companyposition.id,POSITION,salary,
        counts FROM offer INNER JOIN companyposition
        WHERE companyposition.username=offer.cusername
        AND susername=#{susername} ORDER BY cusername DESC
    </select>
    <select id="showJob" resultType="bean.Information">
        SELECT DISTINCT company.username,company.name,
        companyposition.id,companyposition.position,companyposition.salary
        FROM  student,company,offer,companyposition
        WHERE company.username=offer.cusername
        AND offer.susername=student.username
        AND company.username=companyposition.username
        AND jobName=company.username  AND companyposition.id=student.jobId
        AND student.job='是' AND student.username=#{username}
    </select>
    <select id="showStuJob" resultType="bean.stuJob">
        SELECT  DISTINCT student.username,student.name,student.sid,
        student.job,student.jobName,company.username,company.name,
        companyposition.id,companyposition.position,companyposition.salary
         FROM student,companyposition,company
         where companyposition.username=company.username
         AND jobName=companyposition.username AND jobId=companyposition.id
    </select>
</mapper>

项目源码

链接:https://pan.baidu.com/s/1AaOzOrucOrQ23sJNnMoI5Q
提取码:4zh7

总结

至此 所有功能全部完成。有不懂的地方欢迎前来询问或者有错误的地方欢迎前来指正。

  • 16
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值