基于javaweb+mysql的jsp+servlet校园运动会管理系统(java+jsp+servlet+javabean+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的JSP+Servlet校园运动会管理系统(java+jsp+servlet+javabean+mysql)
项目介绍
本项目包含三种角色:运动员、裁判员、管理员;
运动员角色包含以下功能:
运动员登录,个人信息修改,运动成绩查询,比赛项目查询等功能。
裁判员角色包含以下功能: 登录界面,查看运动员,运动成绩查看,录入运动成绩,比赛项目查询等功能。
管理员角色包含以下功能: 登录页面,管理员首页,运动员管理,裁判员管理,运动成绩查询,比赛类型管理等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目:否;
技术栈
JSP+Servlet+JavaBean+MySQL+css+javascript
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中src/util/DB.java配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/jspyundonghuimanager/ 登录 注:tomcat中配置项目路径必须为jspyundonghuimanager,否则会有异常 管理员账号/密码:admin/admin 学生运动员角色账号/密码:student/123456 裁判老师角色账号/密码:teacher/123456
Operator operator = teacher.getOperator();
try {
teacher.setBirth(sdf.parse((request.getParameter("tec_birth"))));
} catch (ParseException e) {
e.printStackTrace();
}
teacher.setSex((request.getParameter("tec_sex")).equals("male") ? "男"
: "女");
teacher.setName(request.getParameter("tec_name"));
teacher.setMajor(request.getParameter("tec_major"));
teacher.setPhone(request.getParameter("tec_phone"));
operator.setName(request.getParameter("ope_name"));
operator.setPwd(request.getParameter("ope_pwd"));
operatorImpl.update(operator);
teacherImpl.update(teacher);
session.setAttribute("operator_me", operator);
session.setAttribute("teacher_me", teacher);
response.sendRedirect("pages/info_teacher.jsp");
}
}
public class SearchTeacherClassServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
.getId()
+ "_" + search_value);
} else {
countPage = scoreImpl.getCountPage("stu_tec_name", student
.getId()
+ "_" + search_value);
}
}
// 直接将数字写入的话会报错?
response.getWriter().write(countPage + "");
}
}
public class GetCountPageServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
// 获取总页数
TeacherImpl teacherImpl = new TeacherImpl();
StudentImpl studentImpl = new StudentImpl();
SubjectImpl subjectImpl = new SubjectImpl();
Operator operator;
Student student;
Teacher teacher;
int countPage = 0;
operator = (Operator) request.getSession().getAttribute("log_operator");
int ope_rol_id = operator.getRole().getId();
.getId()
+ "");
} else if (search_type.equals("sub_name")) {
countPage = subjectImpl.getCountPage("tec_sub_name", teacher
.getId()
+ "_" + search_value);
} else if (search_type.equals("cla_name")) {
countPage = subjectImpl.getCountPage("tec_cla_name", teacher
.getId()
+ "_" + search_value);
} else if (search_type.equals("stu_name")) {
countPage = subjectImpl.getCountPage("tec_stu_name", teacher
.getId()
+ "_" + search_value);
} else if (search_type.equals("tec_name")) {
countPage = subjectImpl.getCountPage("tec_tec_name", teacher
.getId()
+ "_" + search_value);
}
} else {
// 学生运动员查询
student = studentImpl.query("ope_id", operator.getId() + "").get(0);
if (search_type.equals("stu_all")){
countPage = subjectImpl.getCountPage("stu_all", student.getId()
+ "");
}else if(search_type.equals("stu_tec_name")){
countPage = subjectImpl.getCountPage("stu_tec_name", student
.getId()
+ "_" + search_value);
}
else
countPage = subjectImpl.getCountPage("stu_sub_name", student
.getId()
+ "_" + search_value);
}
// 直接将数字写入的话会报错?
response.getWriter().write(countPage + "");
}
}
public class UpdateStudentServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
OperatorImpl operatorImpl = new OperatorImpl();
PictureImpl pictureImpl = new PictureImpl();
StudentImpl studentImpl = new StudentImpl();
ClassesImpl classesImpl = new ClassesImpl();
SubjectImpl subjectImpl = new SubjectImpl();
ScoreImpl scoreImpl = new ScoreImpl();
List<Score> list_score;
List<Subject> list_subject;
HttpSession session = request.getSession();
// 更新学生运动员信息
try {
SmartUpload sm = new SmartUpload();
sm.initialize(getServletConfig(), request, response);
sm.upload();
Student student_my = studentImpl.query("stu_id",
request.getParameter("stu_id") + "").get(0);
Operator operator_my = operatorImpl.query("ope_id",
student_my.getOperator().getId() + "").get(0);
student_my.setNo(sm.getRequest().getParameter("no"));
student_my.setName(sm.getRequest().getParameter("name"));
operator_my.setName(sm.getRequest().getParameter("log_name"));
operator_my.setPwd(sm.getRequest().getParameter("log_pwd"));
student_my.setSex(sm.getRequest().getParameter("sex")
.equals("male") ? "男" : "女");
student_my.setBirth(sdf
.parse(sm.getRequest().getParameter("birth")));
Classes new_classes = classesImpl.query("cla_id",
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
try {
resp.setContentType("text/html");
resp.setContentType("application/vnd.ms-excel");
Cla2SubImpl cla2SubImpl = new Cla2SubImpl();
String search_type = req.getParameter("search_type");
String search_value = java.net.URLDecoder.decode(req
.getParameter("value"), "UTF-8");
List<Cla2Sub> list_cla2Sub = cla2SubImpl.query(search_type,
search_value);
String classes_name = list_cla2Sub.get(0).getClasses().getName();
String fileName = classes_name + ".xls";
resp.setHeader("Content-Disposition", "attachment;" + " filename="
+ new String(fileName.getBytes(), "ISO-8859-1"));
OutputStream os = resp.getOutputStream();
WritableWorkbook wwb = Workbook.createWorkbook(os);
WritableSheet ws = wwb.createSheet(classes_name + "比赛项目表", 0);
WritableFont title_big = new WritableFont(WritableFont.ARIAL, 16,
WritableFont.BOLD);
WritableFont title_little = new WritableFont(WritableFont.ARIAL,
12, WritableFont.BOLD);
WritableCellFormat f1 = new WritableCellFormat(title_big);
f1.setAlignment(Alignment.CENTRE);
f1.setVerticalAlignment(VerticalAlignment.CENTRE);
f1.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
WritableCellFormat f2 = new WritableCellFormat(title_little);
f2.setAlignment(Alignment.CENTRE);
f2.setVerticalAlignment(VerticalAlignment.CENTRE);
f2.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
WritableCellFormat f3 = new WritableCellFormat();
f3.setAlignment(Alignment.CENTRE);
f3.setVerticalAlignment(VerticalAlignment.CENTRE);
f3.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
ws.setRowView(0, 600);
ws.setRowView(1, 500);
ws.mergeCells(0, 0, 1, 0);
Label label;
label = new Label(0, 0, classes_name + "比赛项目表 ", f1);
ws.addCell(label);
label = new Label(2, 0, "班主任:"
+ list_cla2Sub.get(0).getClasses().getTecName(), f3);
ws.addCell(label);
response.sendRedirect("pages/add_teacher.jsp");
}
}
public class UpdateTeacherServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 更新裁判员老师信息
HttpSession session = request.getSession();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
OperatorImpl operatorImpl = new OperatorImpl();
TeacherImpl teacherImpl = new TeacherImpl();
Teacher teacher = teacherImpl.query("tec_id",
request.getParameter("tec_id")).get(0);
Operator operator = teacher.getOperator();
try {
teacher.setBirth(sdf.parse((request.getParameter("tec_birth"))));
} catch (ParseException e) {
private static final long serialVersionUID = 1L;
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
Operator operator = new Operator();
Teacher teacher = new Teacher();
RoleImpl roleImpl = new RoleImpl();
TeacherImpl teacherImpl = new TeacherImpl();
OperatorImpl operatorImpl = new OperatorImpl();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
teacher.setBirth(sdf.parse((request.getParameter("tec_birth"))));
} catch (ParseException e) {
e.printStackTrace();
}
operator.setName(request.getParameter("ope_name"));
operator.setPwd(request.getParameter("ope_pwd"));
operator.setRole(roleImpl.query("rol_id", "2").get(0));
teacher.setSex((request.getParameter("tec_sex")).equals("male") ? "男"
: "女");
teacher.setMajor(request.getParameter("tec_major"));
teacher.setPhone(request.getParameter("tec_phone"));
teacher.setName(request.getParameter("tec_name"));
operator = operatorImpl.add(operator);
teacher.setOperator(operator);
int i = teacherImpl.add(teacher);
if (i == 1) {
request.getSession().setAttribute("message", "添加裁判员老师成功!");
} else {
request.getSession().setAttribute("message", "添加裁判员老师失败!");
}
response.sendRedirect("pages/add_teacher.jsp");
}
}
public void upload(File file, Student student)
{
try
{
java.io.File file2 = new java.io.File(this.getClass().getResource("/").getPath()+"/upload/");
if (!file2.exists()) {
file2.mkdirs();
}
String pic = "upload/" + student.getNo() + "." + file.getFileExt().toLowerCase();
student.setPic("../" + pic);
file.saveAs(pic);
} catch (Exception e)
{
}
}
}
public class SearchClassmatesServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 学生运动员查找同班同学
StudentImpl studentImpl = new StudentImpl();
TeacherImpl teacherImpl = new TeacherImpl();
List<Student> list_student;
list.add(list_major.get(i));
data.add(list);
}
response.getWriter().write(JSONSerializer.toJSON(data).toString());
}
}
public class PictureImpl implements IPicture
{
// 更新学生运动员信息是检查是否更新了照片
public void check(ServletConfig servletConfig, HttpServletRequest request, HttpServletResponse response, SmartUpload sm, Student student)
{
try
{
File file = sm.getFiles().getFile(0);
if (!file.isMissing())
{
delete(servletConfig, request, response, student);
upload(file, student);
}
} catch (Exception e)
{
}
}
// 删除旧照片
public void delete(ServletConfig servletConfig, HttpServletRequest request, HttpServletResponse response, Student student)
{
String pic_old = student.getPic();
if (pic_old != null && !pic_old.equals("") && !pic_old.equals("../image/person.png"))
public class SearchTeacherClassServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
StudentImpl studentImpl = new StudentImpl();
ClassesImpl classesImpl = new ClassesImpl();
TeacherImpl teacherImpl = new TeacherImpl();
Operator operator;
Classes classes;
List<Student> list_student;
HttpSession session = request.getSession();
// 裁判员老师查找自己的班级学生运动员
operator = (Operator) request.getSession().getAttribute("log_operator");
Teacher teacher = teacherImpl.query("ope_id", operator.getId() + "")
.get(0);
if (classesImpl.query("cla_tec", teacher.getName()).size() <= 0) {
response.sendRedirect("pages/noclass.jsp");
} else {
classes = classesImpl.query("cla_tec", teacher.getName()).get(0);
list_student = studentImpl.query("cla_id", classes.getId() + "");
session.setAttribute("list_student", list_student);
session.setAttribute("classes", classes);
session.setAttribute("teacher", teacher);
session.setAttribute("studentNum", list_student.size());
response.sendRedirect("pages/search_classmate.jsp");
}
}
}
List<Subject> list_subject;
operator = (Operator) request.getSession().getAttribute("log_operator");
int ope_rol_id = operator.getRole().getId();
String search_type = request.getParameter("search_type");
String search_value = java.net.URLDecoder.decode(request
.getParameter("value"), "UTF-8");
int page = Integer.parseInt(request.getParameter("page"));
list_subject = new ArrayList<Subject>();
if (ope_rol_id == 1) {
// 管理员的查询
if (search_type.equals("stu_all"))
list_subject = subjectImpl.query("all", search_value, page);
else
list_subject = subjectImpl.query(search_type, search_value,
page);
} else if (ope_rol_id == 2) {
// 裁判员老师的查询
teacher = teacherImpl.query("ope_id", operator.getId() + "").get(0);
if (search_type.equals("stu_all")) {
list_subject = subjectImpl.query("tec_stu_all", teacher.getId()
+ "", page);
} else if (search_type.equals("sub_name")) {
list_subject = subjectImpl.query("tec_sub_name", teacher
.getId()
+ "_" + search_value, page);
} else if (search_type.equals("cla_name")) {
list_subject = subjectImpl.query("tec_cla_name", teacher
.getId()
+ "_" + search_value, page);
} else if (search_type.equals("stu_name")) {
list_subject = subjectImpl.query("tec_stu_name", teacher
.getId()
+ "_" + search_value, page);
} else if (search_type.equals("tec_name")) {
list_subject = subjectImpl.query("tec_tec_name", teacher
.getId()
+ "_" + search_value, page);
}
} else {
// 学生运动员查询
student = studentImpl.query("ope_id", operator.getId() + "").get(0);
if (search_type.equals("stu_all")) {
list_subject = subjectImpl.query("stu_all", student.getId()
+ "", page);
} else if (search_type.equals("stu_tec_name")) {
list_subject = subjectImpl.query("stu_tec_name", student
.getId()
+ "_" + search_value, page);
} else {
list_subject = subjectImpl.query("stu_sub_name", student
.getId()
+ "_" + search_value, page);
}
cell_format);
break;
case 2:
label = new Label(j, i + 2
- (pg * sheetSize), bean
.getSubject().getName(),
cell_format);
break;
case 3:
number = new Number(j, i + 2
- (pg * sheetSize),
bean.getDaily(), cell_format);
break;
case 4:
number = new Number(j, i + 2
- (pg * sheetSize), bean.getExam(),
cell_format);
break;
default:
number = new Number(j, i + 2
- (pg * sheetSize),
bean.getCount(), cell_format);
}
if (j == 0 || j == 1 || j == 2)
ws.addCell(label);
else
ws.addCell(number);
}
} else {
break;
}
}
}
book.write();
book.close();
os.close();
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}
public class UpdateTeacherServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 更新裁判员老师信息
HttpSession session = request.getSession();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
OperatorImpl operatorImpl = new OperatorImpl();
TeacherImpl teacherImpl = new TeacherImpl();
Teacher teacher = teacherImpl.query("tec_id",
request.getParameter("tec_id")).get(0);
Operator operator = teacher.getOperator();
try {
teacher.setBirth(sdf.parse((request.getParameter("tec_birth"))));
} catch (ParseException e) {
e.printStackTrace();
}
teacher.setSex((request.getParameter("tec_sex")).equals("male") ? "男"
: "女");
teacher.setName(request.getParameter("tec_name"));
teacher.setMajor(request.getParameter("tec_major"));
teacher.setPhone(request.getParameter("tec_phone"));
operator.setName(request.getParameter("ope_name"));
int ope_rol_id = operator.getRole().getId();
String search_type = request.getParameter("search_type");
String search_value = java.net.URLDecoder.decode(request
.getParameter("value"), "UTF-8");
int page = Integer.parseInt(request.getParameter("page"));
list_student = new ArrayList<Student>();
if (ope_rol_id == 1) {
// 管理员的查询
if (search_type.equals("stu_all")) {
list_student = studentImpl.query("stu_all", search_value + "",
page);
} else if (search_type.equals("stu_no")) {
list_student = studentImpl.query("stu_no", search_value + "",
page);
} else if (search_type.equals("stu_name")) {
list_student = studentImpl.query("stu_name", search_value + "",
page);
} else if (search_type.equals("cla_name")) {
list_student = studentImpl.query("cla_name", search_value + "",
page);
} else if (search_type.equals("maj_name")) {
list_student = studentImpl.query("maj_name", search_value + "",
page);
}
} else if (ope_rol_id == 2) {
// 裁判员老师的查询
teacher = teacherImpl.query("ope_id", operator.getId()/* 3 */+ "")
.get(0);
if (search_type.equals("stu_all")) {
list_student = studentImpl.query("tec_stu_all", teacher
.getName(), page);
} else if (search_type.equals("stu_no")) {
list_student = studentImpl.query("tec_stu_no", teacher
.getName()
+ "_" + search_value, page);
} else if (search_type.equals("stu_name")) {
list_student = studentImpl.query("tec_stu_name", teacher
.getName()
+ "_" + search_value, page);
} else if (search_type.equals("cla_name")) {
list_student = studentImpl.query("tec_cla_name", teacher
.getName()
+ "_" + search_value, page);
} else if (search_type.equals("maj_name")) {
list_student = studentImpl.query("tec_maj_name", teacher
.getName()
+ "_" + search_value, page);
}
}
response.getWriter().write(
ws.setRowView(i + 2, 400);
}
wwb.write();
wwb.close();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class AddStudentServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
OperatorImpl operatorImpl = new OperatorImpl();
PictureImpl pictureImpl = new PictureImpl();
StudentImpl studentImpl = new StudentImpl();
ClassesImpl classesImpl = new ClassesImpl();
SubjectImpl subjectImpl = new SubjectImpl();
ScoreImpl scoreImpl = new ScoreImpl();
RoleImpl roleImpl = new RoleImpl();
// 添加新学生运动员
try {
SmartUpload sm = new SmartUpload();
sm.initialize(getServletConfig(), request, response);
sm.upload();
Student student = new Student();
Operator operator = new Operator();
// 为学生运动员添加操作员信息记录
operator.setName(sm.getRequest().getParameter("ope_name"));
operator.setPwd(sm.getRequest().getParameter("ope_pwd"));
operator.setRole(roleImpl.query("rol_id", "3").get(0));
operator = operatorImpl.add(operator);
// 将学生运动员添加到学生运动员表
student.setOperator(operator);
student.setNo(sm.getRequest().getParameter("no"));
student.setName(sm.getRequest().getParameter("name"));
student
.setSex(sm.getRequest().getParameter("sex").equals("male") ? "男"
: "女");
student.setBirth(sdf.parse(sm.getRequest().getParameter("birth")));
student.setClasses(classesImpl.query("cla_id",
sm.getRequest().getParameter("cla_id")).get(0));
pictureImpl.check(getServletConfig(), request, response, sm,
student);
int i = studentImpl.add(student);
student = studentImpl.query("ope_id", operator.getId() + "").get(0);
if (i == 1) {
request.getSession().setAttribute("message", "添加学生运动员成功!");
} else {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 更新裁判员老师信息
HttpSession session = request.getSession();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
OperatorImpl operatorImpl = new OperatorImpl();
TeacherImpl teacherImpl = new TeacherImpl();
Teacher teacher = teacherImpl.query("tec_id",
request.getParameter("tec_id")).get(0);
Operator operator = teacher.getOperator();
try {
teacher.setBirth(sdf.parse((request.getParameter("tec_birth"))));
} catch (ParseException e) {
e.printStackTrace();
}
teacher.setSex((request.getParameter("tec_sex")).equals("male") ? "男"
: "女");
teacher.setName(request.getParameter("tec_name"));
teacher.setMajor(request.getParameter("tec_major"));
teacher.setPhone(request.getParameter("tec_phone"));
operator.setName(request.getParameter("ope_name"));
operator.setPwd(request.getParameter("ope_pwd"));
operatorImpl.update(operator);
teacherImpl.update(teacher);
session.setAttribute("operator_me", operator);
session.setAttribute("teacher_me", teacher);
response.sendRedirect("pages/info_teacher.jsp");
}
}