基于javaweb的SSH课程资源教学在线考试平台(java+ssh+mysql+jsp+tomcat)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

200023262402

210023262402

220023262402

240023262402

250023262402

基于javaweb的SSH课程资源教学在线考试平台(java+ssh+mysql+jsp+tomcat)

一、项目简述

功能包括: 管理员可以增删改查教材、教材商、入库教材、用户(用 户包括学生和教师)可以对教材商、教材进行。xcel的导入 导出操作。教师可以领取入库的教材,可以退还教材。学 生只能在对应的教师那里领取教材,并且可以退还教材、 查询自己已经领取的教材。并且对已领教材付款等等。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP +Struts+Spring+Hibernate + html+ css + JavaScript + JQuery + Ajax等等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
	                    e.printStackTrace();
}
}
}

}

}
<%@ page language="java" import="CourseWeb.Dao.AdminDaoImpl" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>课程资源在线管理平台后台</title>
<link rel="shortcut icon" href="favicon.ico"> <link href="css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
<link href="css/font-awesome.min.css?v=4.4.0" rel="stylesheet">
<link href="css/animate.css" rel="stylesheet">
<link href="css/style.css?v=4.1.0" rel="stylesheet">

</head>
<body class="fixed-sidebar full-height-layout gray-bg" style="overflow:hidden">
<div align="right" style="background-color:#5A96BB;height: 45px; font-size: 30px;
color: white;">
<div align="right" style="margin-right: 100px;">

课程资源在线管理平台管理员端
</div>
</div>
<div id="wrapper">
<!--左侧导航开始-->
<nav class="navbar-default navbar-static-side" role="navigation">
<div class="nav-close"><i class="fa fa-times-circle"></i>
</div>
<div class="sidebar-collapse">
<ul class="nav" id="side-menu">
<li class="nav-header">
<div class="dropdown profile-element">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<span class="clear">
<span class="block m-t-xs" style="font-size:20px;">
<i class="fa fa-area-chart"></i>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'updateQuestion.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link href="css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
<link href="css/font-awesome.min.css?v=4.4.0" rel="stylesheet">
<link href="css/animate.css" rel="stylesheet">
<link href="css/style.css?v=4.1.0" rel="stylesheet">
<script type="text/javascript">
function checkForm(f){
var type = "${requestScope.question.type}";
var course = document.getElementById("course");

if(f.description.value==""){
alert("题目描述不能为空!!");
f.description.focus();
return false;
}

if(type=="single"||type=="multiple"){
if(f.option1.value==""){
alert("选项A不能为空!!");
f.option1.focus();
return false;
}
if(f.option2.value==""){
alert("选项B不能为空!!");
f.option2.focus();
return false;
}
if(f.option3.value==""){
alert("选项C不能为空!!");
f.option3.focus();
return false;
}
if(f.option4.value==""){
alert("选项D不能为空!!");
f.option4.focus();
return false;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
HttpServletRequest request = ServletActionContext.getRequest();
//单选题组卷相关参数
Integer si_e_n = Integer.parseInt(request.getParameter("si_e_n"));
Integer si_e_s = Integer.parseInt(request.getParameter("si_e_s"));
Integer si_m_n = Integer.parseInt(request.getParameter("si_m_n"));
Integer si_m_s = Integer.parseInt(request.getParameter("si_m_s"));
Integer si_d_n = Integer.parseInt(request.getParameter("si_d_n"));
Integer si_d_s = Integer.parseInt(request.getParameter("si_d_s"));
//多选题组卷相关参数
Integer m_e_n = Integer.parseInt(request.getParameter("m_e_n"));
Integer m_e_s = Integer.parseInt(request.getParameter("m_e_s"));
Integer m_m_n = Integer.parseInt(request.getParameter("m_m_n"));
Integer m_m_s = Integer.parseInt(request.getParameter("m_m_s"));
Integer m_d_n = Integer.parseInt(request.getParameter("m_d_n"));
Integer m_d_s = Integer.parseInt(request.getParameter("m_d_s"));
//判断题组卷相关参数
Integer j_e_n = Integer.parseInt(request.getParameter("j_e_n"));
Integer j_e_s = Integer.parseInt(request.getParameter("j_e_s"));
Integer j_m_n = Integer.parseInt(request.getParameter("j_m_n"));
Integer j_m_s = Integer.parseInt(request.getParameter("j_m_s"));
Integer j_d_n = Integer.parseInt(request.getParameter("j_d_n"));
Integer j_d_s = Integer.parseInt(request.getParameter("j_d_s"));
//解答题组卷相关参数
Integer su_e_n = Integer.parseInt(request.getParameter("su_e_n"));
Integer su_e_s = Integer.parseInt(request.getParameter("su_e_s"));
Integer su_m_n = Integer.parseInt(request.getParameter("su_m_n"));
Integer su_m_s = Integer.parseInt(request.getParameter("su_m_s"));
Integer su_d_n = Integer.parseInt(request.getParameter("su_d_n"));
Integer su_d_s = Integer.parseInt(request.getParameter("su_d_s"));

List<Course> courses = courseService.findAllCourse();
ActionContext.getContext().put("courses",courses);

List<Question> qs_si_e = questionService.findQuestionByTD("single", "1",paper.getCourse().getCid());
List<Question> qs_si_m = questionService.findQuestionByTD("single", "2",paper.getCourse().getCid());
List<Question> qs_si_d = questionService.findQuestionByTD("single", "3",paper.getCourse().getCid());
System.out.print("单选题"+qs_si_e.size()+";"+qs_si_m.size()+";"+qs_si_d.size());
if(si_e_n>qs_si_e.size()||si_m_n>qs_si_m.size()||si_d_n>qs_si_d.size()){
ActionContext.getContext().put("msg", "题库中没有足够的满足条件的单选题");
return "generateFalse";
}

List<Question> qs_m_e = questionService.findQuestionByTD("multiple", "1",paper.getCourse().getCid());
List<Question> qs_m_m = questionService.findQuestionByTD("multiple", "2",paper.getCourse().getCid());
List<Question> qs_m_d = questionService.findQuestionByTD("multiple", "3",paper.getCourse().getCid());
if(m_e_n>qs_m_e.size()||m_m_n>qs_m_m.size()||m_d_n>qs_m_d.size()){
ActionContext.getContext().put("msg", "题库中没有足够的满足条件的多选题");
return "generateFalse";
}

List<Question> qs_j_e = questionService.findQuestionByTD("judgment", "1",paper.getCourse().getCid());
List<Question> qs_j_m = questionService.findQuestionByTD("judgment", "2",paper.getCourse().getCid());
List<Question> qs_j_d = questionService.findQuestionByTD("judgment", "3",paper.getCourse().getCid());
System.out.print("判断题"+qs_j_e.size()+";"+qs_j_m.size()+";"+qs_j_d.size());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
public class PaperDaoImpl implements PaperDao {

private HibernateTemplate hibernateTemplate;

public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}

public Paper findById(Integer pid) {
return this.hibernateTemplate.get(Paper.class, pid);
}

public List<Paper> findAll() {
return this.hibernateTemplate.find("from Paper");
}

public void save(Paper paper) {
this.hibernateTemplate.save(paper);
}

public void update(Paper paper) {
this.hibernateTemplate.update(paper);
}

public void delete(Paper paper) {
this.hibernateTemplate.delete(paper);
}

public List<Paper> findOutExam(String sid){
Configuration config=new Configuration().configure();
SessionFactory sessionFactory=config.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction t = session.beginTransaction();
System.out.println("调试pdao_"+sid);
Query query=session.createSQLQuery("select * from paper p where p.status=2 and not exists(select * from exam e where e.sid=? and e.pid=p.pid)").addEntity(Paper.class);
query.setString(0, sid);
List<Paper> papers=query.list();
t.commit();
session.close();
sessionFactory.close();
return papers;
}

public List<Paper> findInExam(String sid){
Configuration config=new Configuration().configure();
SessionFactory sessionFactory=config.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction t = session.beginTransaction();
Query query=session.createSQLQuery("select * from paper p where exists(select * from exam e where e.sid=? and e.pid=p.pid and e.status=2)").addEntity(Paper.class);
query.setString(0, sid);
List<Paper> papers=query.list();
t.commit();
session.close();
sessionFactory.close();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
		}

return "logoff";
}
}

package CourseWeb.Dao;
/**
* 使用hibernate.cfg.xml
*/
//public class UserDaoImpl implements UserDao {
// // 提供hibernate模板
// private HibernateTemplate hibernateTemplate;
// public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
// this.hibernateTemplate = hibernateTemplate;
// }
// public User findById(Integer id) {
// return this.hibernateTemplate.get(User.class, id);
// }
// public List<User> findAll() {
// return this.hibernateTemplate.find("from User");
// }
// public void save(User user) {
// this.hibernateTemplate.save(user);
// }
// public void update(User user) {
// this.hibernateTemplate.update(user);
// }
// public void delete(User user) {
// this.hibernateTemplate.delete(user);
// }
//}
/**
* 不使用hibernate.cfg.xml
*/
// //继承 HibernateDaoSupport自动生成模板, 必须提供SessionFactory
// public class UserDaoImpl extends HibernateDaoSupport implements UserDao {


项目链接:
https://javayms.github.io?id=441422322105200kw
https://javayms.pages.dev?id=441422322105200kw