基于JavaWeb Mybatis+MVC的高校就业管理系统
项目简介
基本功能简介
该高校就业管理系统项目共分为三部分,分别为:学生系统、管理员系统、企业系统。
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> | <a href="jspdemo/workdemo/Announcement.jsp">公告信息</a>
| <a href="/RecruitServlet?action=showCompanies">招聘信息</a> | <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> 账号 </th>
<th> 公司名称 </th>
<td> 公司简介 </td>
<td> 联系人 </td>
<td> 联系电话 </td>
<td> 工作地点 </td>
<td> 需要岗位数 </td>
<td colspan="4">操作</td>
</tr>
<c:forEach items="${sessionScope.company}" var="inf">
<tr>
<td> ${inf.username} </td>
<td> ${inf.name} </td>
<td> ${inf.introduce} </td>
<td> ${inf.contact} </td>
<td> ${inf.telephone} </td>
<td> ${inf.place} </td>
<td> ${inf.positionCount} </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>
| <a href="/RecruitServlet?action=showCompanies&username=${sessionScope.username}">查看招聘信息</a> | <a href="/RecruitServlet?action=showStuRequestJob&username=${sessionScope.username}">投递简历信息</a>
| <a href="/RecruitServlet?action=showStuResponseJob&username=${sessionScope.username}">填写就业信息</a> |
<a href="/RecruitServlet?action=showGetJob&username=${sessionScope.username}">查看就业信息</a> |
<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>");
%> | <a href="/ManageCompany?action=showStuCompanyInfo&username=${sessionScope.username}">查看应聘信息</a>
| <a href="/ManageCompany?action=showAllResponseOffer&username=${sessionScope.username}">查看发送offer</a> |
<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> | <a href="/manageInformation?action=showAllCompany&admin=${sessionScope.username}">管理企业信息</a>
| <a href="/manageInformation?action=showAllStuCompany&admin=${sessionScope.username}">查看就业信息</a> | <a href="/jspdemo/adminSystem/registerAdmin.jsp">添加管理员</a> |
<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> 账号 </th>
<th> 密码 </th>
<td> 姓名 </td>
<td> 性别 </td>
<td> 出生日期 </td>
<td> 学号 </td>
<td> 电话 </td>
<td> 家庭住址 </td>
<td> 院系 </td>
<td> 专业 </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
总结
至此 所有功能全部完成。有不懂的地方欢迎前来询问或者有错误的地方欢迎前来指正。