基于javaweb+mysql的ssh课程资源教学在线考试平台(java+ssh+mysql+jsp+tomcat)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的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等等。
this.hibernateTemplate.update(question);
}
public void delete(Question question) {
this.hibernateTemplate.delete(question);
}
public List<Question> findInQP(Integer pid){
Configuration config=new Configuration().configure();
SessionFactory sessionFactory=config.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction t = session.beginTransaction();
Query query=session.createSQLQuery("select * from question q where exists(select * from q_p qp where qp.pid=? and qp.qid=q.qid)").addEntity(Question.class);
query.setInteger(0, pid);
List<Question> questions=query.list();
if(questions.isEmpty())
System.out.print("wocao");
for(Question q:questions){
System.out.print(q.getType());
}
t.commit();
session.close();
sessionFactory.close();
return questions;
}
public List<Question> findOutQP(Integer pid){
Configuration config=new Configuration().configure();
SessionFactory sessionFactory=config.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction t = session.beginTransaction();
Query query=session.createSQLQuery("select * from question q where not exists(select * from q_p qp where qp.pid=? and qp.qid=q.qid)").addEntity(Question.class);
query.setInteger(0, pid);
List<Question> questions=query.list();
if(questions.isEmpty())
System.out.print("卧槽");
for(Question q:questions){
System.out.print(q.getType());
}
t.commit();
session.close();
sessionFactory.close();
return questions;
}
public List<Question> findOutQPBy(Integer pid,Integer cid,String type){
Configuration config=new Configuration().configure();
SessionFactory sessionFactory=config.buildSessionFactory();
Session session = sessionFactory.openSession();
List<Homework> homeworks = homeworkService.findAllHomework();
ActionContext.getContext().put("homeworks", homeworks);
return "selectAll";
}
public String beforeUpdate() {
Homework homework = homeworkService.findHomeworkById(this.homework.getHid());
ActionContext.getContext().put("homework", homework);
return "beforeUpdate";
}
public String update() {
this.homeworkService.updateHomework(homework);
return "success";
}
public String delete() {
homeworkService.deleteHomework(homework);
List<Homework> homeworks = homeworkService.findAllHomework();
ActionContext.getContext().put("homeworks", homeworks);
return "selectAll";
}
public String add() {
homeworkService.saveHomework(homework);
return "success";
}
public String beforeAdd() {
List<Course> courses = courseService.findAllCourse();
ActionContext.getContext().put("courses", courses);
return "beforeAdd";
}
public String selectAllofMine() {
System.out.println(homework.getStudent().getSid());
List<Homework> homeworks = homeworkService.findHomeworkBySid(homework.getStudent().getSid());
ActionContext.getContext().put("homeworks", homeworks);
return "selectAllofMine";
}
for(int i=0;i<5;i++)
System.out.println(result[i]);
//System.out.println(all.remove(4));
//System.out.println(all.remove(4));
System.out.println("********************");
for(int i=0;i<all.size();i++)
System.out.println(all.get(i));
*/
WritableWorkbook book = null;
try {
// 打开文件
book = Workbook.createWorkbook(new File("E:/测试.xls"));
// 生成名为"学生"的工作表,参数0表示这是第一页
WritableSheet sheet = book.createSheet("学生", 0);
// 指定单元格位置是第一列第一行(0, 0)以及单元格内容为张三
Label label = new Label(0, 0, "三");
// 将定义好的单元格添加到工作表中
sheet.addCell(label);
// 保存数字的单元格必须使用Number的完整包路径
jxl.write.Number number = new jxl.write.Number(1, 0, 30);
sheet.addCell(number);
// 写入数据并关闭文件
book.write();
} catch (Exception e) {
System.out.println(e);
}finally{
if(book!=null){
try {
book.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
ActionContext.getContext().put("courses", courses);
return "beforeUpdate";
}
public String update() {
this.questionService.updateQuestion(question);
return "success";
}
public String delete() {
questionService.deleteQuestion(question);
List<Question> questions = questionService.findAllQuestion();
ActionContext.getContext().put("questions", questions);
return "selectAll";
}
public String add() {
questionService.saveQuestion(question);
System.out.println("测试多选题答案" + question.getAnswer());
return "success";
}
}
public class ThemeAction extends ActionSupport implements ModelDriven<Theme>{
private static final long serialVersionUID=1L;
private Theme theme = new Theme();
Student student = new Student();
public Theme getModel() {
Theme theme = this.theme;
theme.setSender(student);
return this.theme;
}
// *****************************
private ThemeService themeService;
* 使用注解方式
*/
@Repository
public class StudentDaoImpl implements StudentDao {
// 提供hibernate模板
private HibernateTemplate hibernateTemplate;
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
public Student findById(String sid) {
return this.hibernateTemplate.get(Student.class, sid);
}
public List<Student> findAll() {
return this.hibernateTemplate.find("from Student");
}
public void save(Student student) {
this.hibernateTemplate.save(student);
}
public void update(Student student) {
this.hibernateTemplate.update(student);
}
public void delete(Student student) {
this.hibernateTemplate.delete(student);
}
public List<Student> findInChat(String tid){
Configuration config=new Configuration().configure();
SessionFactory sessionFactory=config.buildSessionFactory();
Session session = sessionFactory.openSession();
return this.ERROR;
}
}
public String logoff() {
ActionContext context=ActionContext.getContext();
if("student".equals(identity)) {
Student student = (Student)context.getSession().get("student");
student.setStatus(1);
studentService.updateStudent(student);
context.getSession().remove("student");
}
else if("teacher".equals(identity)){
Teacher teacher = (Teacher)context.getSession().get("teacher");
teacher.setStatus(1);
teacherService.updateTeacher(teacher);
context.getSession().remove("teacher");
}
else {
context.getSession().remove("admin");
}
return "logoff";
}
}
/**
* 使用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) {
return "beforeUpdate";
}
public String update(){
this.paperService.updatePaper(paper);
return "success";
}
public String delete(){
paperService.deletePaper(paper);
List<Paper> papers = paperService.findAllPaper();
ActionContext.getContext().put("papers", papers);
return "selectAll";
}
public String add(){
Course course = courseService.findCourseById(paper.getCourse().getCid());
paper.setName(paper.getYear()+paper.getTerm()+course.getName()+"课程"+paper.getType()+"试卷");
//System.out.println(paper.getCourse().getCid()+"名字"+paper.getCourse().getCid());
paper.setStatus(1);
paperService.savePaper(paper);
List<Question> questions1 = questionService.findQuestionInQP(paper.getPid());
List<Question> questions2 = questionService.findQuestionOutQP(paper.getPid());
List<Course> courses = courseService.findAllCourse();
ActionContext.getContext().put("paper", paper);
ActionContext.getContext().put("questions1", questions1);
ActionContext.getContext().put("questions2", questions2);
ActionContext.getContext().put("courses", courses);
return "generatePaper";
}
public String deleteQP(){
QP qp = new QP();
qp.setPid(this.paper.getPid());
qp.setQid(qid);
qpService.deleteQP(qp);
Paper paper = paperService.findPaperById(this.paper.getPid());
List<Question> questions1 = questionService.findQuestionInQP(paper.getPid());
List<Question> questions2 = questionService.findQuestionOutQP(paper.getPid());
List<Course> courses = courseService.findAllCourse();
ActionContext.getContext().put("paper", paper);
ActionContext.getContext().put("questions1", questions1);
ActionContext.getContext().put("questions2", questions2);
ActionContext.getContext().put("courses", courses);
return "generatePaper";
}
public String addQP(){
QP qp = new QP();
qp.setPid(this.paper.getPid());
qp.setQid(qid);
qp.setScore(0);
qpService.saveQP(qp);
public InputStream getDownloadFile() {
String filepath = "/homeworks/" + filename;
return ServletActionContext.getServletContext().getResourceAsStream(filepath);
}
public String encodeDownloadFilename(String name, String agent) throws IOException {
if (agent.contains("Firefox")) {
name = "=?UTF-8?B?" + new BASE64Encoder().encode(name.getBytes("utf-8")) + "?=";
} else {
name = URLEncoder.encode(name, "utf-8");
}
return name;
}
// *****************************
public String selectAll() {
List<Homework> homeworks = homeworkService.findAllHomework();
ActionContext.getContext().put("homeworks", homeworks);
return "selectAll";
}
public String beforeUpdate() {
Homework homework = homeworkService.findHomeworkById(this.homework.getHid());
ActionContext.getContext().put("homework", homework);
return "beforeUpdate";
}
public String update() {
this.homeworkService.updateHomework(homework);
return "success";
}
public String delete() {
homeworkService.deleteHomework(homework);
List<Homework> homeworks = homeworkService.findAllHomework();
ActionContext.getContext().put("homeworks", homeworks);
return "selectAll";
}
public String add() {
homeworkService.saveHomework(homework);
return "success";
}
public String beforeAdd() {
List<Course> courses = courseService.findAllCourse();
ActionContext.getContext().put("courses", courses);
return "beforeAdd";
}
public String selectAllofMine() {
public class PaperAction extends ActionSupport implements ModelDriven<Paper>{
private static final long serialVersionUID=1L;
private Paper paper = new Paper();
private Integer cid;
private String type;
private Integer qid;
List<Integer> qids4=new ArrayList<Integer>();
List<String> answers4=new ArrayList<String>();
public List<Integer> getQids4() {
return qids4;
}
public void setQids4(List<Integer> qids4) {
this.qids4 = qids4;
}
public List<String> getAnswers4() {
return answers4;
}
public void setAnswers4(List<String> answers4) {
this.answers4 = answers4;
}
public Integer getCid() {
return cid;
public void setHomeworkService(HomeworkService homeworkService) {
this.homeworkService = homeworkService;
}
public void setCourseService(CourseService courseService) {
this.courseService = courseService;
}
// **********上传文件*******************
public String upload() throws Exception {
InputStream is = new FileInputStream(file);
String uploadPath = ServletActionContext.getServletContext().getRealPath("/homeworks");
File toFile = new File(uploadPath, this.getFileFileName());
OutputStream os = new FileOutputStream(toFile);
byte[] buffer = new byte[1024];
int length = 0;
while (-1 != (length = is.read(buffer, 0, buffer.length))) {
os.write(buffer);
}
is.close();
os.close();
homework.setName(fileFileName);
homeworkService.saveHomework(homework);
return "upload";
}
// **********下载文件*******************
public InputStream getDownloadFile() {
String filepath = "/homeworks/" + filename;
return ServletActionContext.getServletContext().getResourceAsStream(filepath);
}
public String encodeDownloadFilename(String name, String agent) throws IOException {
if (agent.contains("Firefox")) {
name = "=?UTF-8?B?" + new BASE64Encoder().encode(name.getBytes("utf-8")) + "?=";
} else {
name = URLEncoder.encode(name, "utf-8");
}
return name;
}
// *****************************
public String selectAll() {
public void setPaperService(PaperService paperService) {
this.paperService = paperService;
}
public void setQuestionService(QuestionService questionService) {
this.questionService = questionService;
}
public void setCourseService(CourseService courseService) {
this.courseService = courseService;
}
public void setQpService(QPService qpService) {
this.qpService = qpService;
}
public void setExamService(ExamService examService) {
this.examService = examService;
}
public void setMyAnswerService(MyAnswerService myAnswerService) {
this.myAnswerService = myAnswerService;
}
public String selectAll() {
List<Paper> papers = paperService.findAllPaper();
ActionContext.getContext().put("papers",papers);
return "selectAll";
}
public String beforeUpdate(){
Paper paper = paperService.findPaperById(this.paper.getPid());
ActionContext.getContext().put("paper", paper);
return "beforeUpdate";
}
public String update(){
this.paperService.updatePaper(paper);
return "success";
}
public String delete(){
paperService.deletePaper(paper);
List<Paper> papers = paperService.findAllPaper();
ActionContext.getContext().put("papers", papers);
return "selectAll";
}
public String add(){
Course course = courseService.findCourseById(paper.getCourse().getCid());
public class QuestionAction extends ActionSupport implements ModelDriven<Question> {
private static final long serialVersionUID = 1L;
private Question question = new Question();
private Course course= new Course();
public Question getModel() {
Question question = this.question;
question.setCourse(course);
return question;
}
// *****************************
private QuestionService questionService;
private CourseService courseService;
public void setQuestionService(QuestionService questionService) {
this.questionService = questionService;
}
public void setCourseService(CourseService courseService) {
this.courseService = courseService;
}
public String selectAll() {
List<Question> temp = questionService.findAllQuestion();
List<Question> questions = new ArrayList<Question>();
Iterator<Question> it = temp.iterator();
while (it.hasNext()) {
Question q = it.next();
Course c = courseService.findCourseById(q.getCourse().getCid());
q.setCourse(c);
questions.add(q);
}
ActionContext.getContext().put("questions", questions);
return "selectAll";
}
public String beforeUpdate() {
Question question = questionService.findQuestionById(this.question.getQid());
List<Course> courses = courseService.findAllCourse();
ActionContext.getContext().put("question", question);
ActionContext.getContext().put("courses", courses);
public String add() {
homeworkService.saveHomework(homework);
return "success";
}
public String beforeAdd() {
List<Course> courses = courseService.findAllCourse();
ActionContext.getContext().put("courses", courses);
return "beforeAdd";
}
public String selectAllofMine() {
System.out.println(homework.getStudent().getSid());
List<Homework> homeworks = homeworkService.findHomeworkBySid(homework.getStudent().getSid());
ActionContext.getContext().put("homeworks", homeworks);
return "selectAllofMine";
}
}
public class StudentAction extends ActionSupport implements ModelDriven<Student>{
private static final long serialVersionUID=1L;
private String content;
public String getContent() {
return content;
}
@Repository
public class AdminDaoImpl implements AdminDao {
// 提供hibernate模板
private HibernateTemplate hibernateTemplate;
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
public Admin findById(String aid) {
return this.hibernateTemplate.get(Admin.class, aid);
}
public List<Admin> findAll() {
return this.hibernateTemplate.find("from Admin");
}
public void save(Admin admin) {
this.hibernateTemplate.save(admin);
}
public void update(Admin admin) {
this.hibernateTemplate.update(admin);
}
public void delete(Admin admin) {
this.hibernateTemplate.delete(admin);
}
}
/**
* 使用hibernate.cfg.xml
*/
<div style="width:1000;margin:20">
<table class="table table-bordered table-hover">
<thead>
<tr align="center">
<td colspan="6" class="success"><h3>添加试题信息</h3></td>
</tr>
</thead>
<tbody>
<tr align="center">
<td class="active">试题描述</td>
<td colspan="5"><input type="text" name="description" class="form-control"></td>
</tr>
<tr class="active" align="center">
<td width=100>题型</td>
<td id="typename" align="center" width=100>
</td>
<td width=100>所属课程</td>
<td width=200>
<select name="course.cid" id="course" class="form-control">
<s:iterator value="#request.courses" var="course">
<option value="${course.cid}">${course.name}
</s:iterator>
</select>
</td>
<td width=100>难度等级</td>
<td width=200>
<select name="difficulty" class="form-control">
<option value="1"> 简 单
<option value="2"> 中 等
<option value="3"> 困 难
</select>
</td>
</tr>
<s:if test="#type=='single'||#type=='multiple'">
<tr align="center">
<td class="active">选项A</td>
<td colspan="5"><input type="text" name="option1" class="form-control"></td>
</tr>
<tr align="center">
<td class="active">选项B</td>
<td colspan="5"><input type="text" name="option2" class="form-control"></td>
</tr>
<tr align="center">
<td class="active">选项C</td>
<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>
<strong class="font-bold">菜单栏</strong>
</span>
</span>
</a>
</div>
<div class="logo-element">
菜单栏
</div>
</li>
<li>
<a class="J_menuItem" href="welcome.html">
<i class="fa fa-home"></i>
<span class="nav-label">主页</span>
</a>
</li>
<li>
<a href="#">
<i class="fa fa-user"></i>
<span class="nav-label">用户管理</span>
<span class="fa arrow"></span>
</a>
<ul class="nav nav-second-level">
<li>
<a class="J_menuItem" href="teacherAction_selectAll">查询所有教师</a>
</li>
<li>
<a class="J_menuItem" href="admin/addTeacher.jsp">添加教师</a>
</li>
<li>
<a class="J_menuItem" href="studentAction_selectAll">查询所有学生</a>
</li>
<li>
<a class="J_menuItem" href="admin/readStudent.jsp">导入学生信息</a>
</li>
<li>
<a class="J_menuItem" href="admin/addStudent.jsp">添加学生</a>
</li>
</ul>
</li>
<li>
<a href="#">
public class PaperAction extends ActionSupport implements ModelDriven<Paper>{
private static final long serialVersionUID=1L;
private Paper paper = new Paper();
private Integer cid;
private String type;
private Integer qid;
List<Integer> qids4=new ArrayList<Integer>();
List<String> answers4=new ArrayList<String>();
public List<Integer> getQids4() {
return qids4;
}
public void setQids4(List<Integer> qids4) {
this.qids4 = qids4;
}
public List<String> getAnswers4() {
return answers4;
}
public void setAnswers4(List<String> answers4) {
this.answers4 = answers4;
}
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
private Course course= new Course();