JavaWeb项目开发案例精粹-第3章在线考试系统-005action层
2016-03-25 17:37
387 查看
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0" encoding="UTF-8" ?><!-- XML声明 --> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><!-- 指定Struts 2配置文件的DTD信息 --> <struts><!-- 根节点 --> <constant name="struts.i18n.encoding" value="gb2312"></constant> <package name="struts2" extends="struts-default"> <action name="login" class="com.sanqing.action.LoginAction"> <result name="studentSuccess" type="chain">getRandomSubject</result><!--进入考试页面--> <result name="teacherSuccess" type="redirect">/teacher/index.html</result><!--老师登录成功页面--> <result name="input">/login.jsp</result><!--登录失败页面--> </action> <action name="subjectAdd" class="com.sanqing.action.SubjectAddAction"> <result name="success" type="redirect">/teacher/subjectAdd.jsp</result><!--重定向到试题添加页面--> <result name="input">/teacher/subjectAdd.jsp</result><!--请求转发到试题添加页面--> </action> <action name="subjectQuery" class="com.sanqing.action.QuerySubjectAction"> <result name="success">/teacher/subjectManage.jsp</result><!--跳转到试题列表管理页面--> </action> <action name="subjectParticular" class="com.sanqing.action.SubjectParticularAction"> <result name="success">/teacher/subjectShow.jsp</result><!--跳转到试题详细显示页面--> </action> <action name="subjectUpadateBefore" class="com.sanqing.action.SubjectUpdateBefore"> <result name="success">/teacher/subjectUpdate.jsp</result><!--跳转到试题更新页面--> </action> <action name="subjectUpadate" class="com.sanqing.action.SubjectUpdateAction"> <result name="success">/teacher/subjectUpdate.jsp</result><!--跳转到试题更新页面--> </action> <action name="subjectLikeQuery" class="com.sanqing.action.LikeQuerySubjectAction"> <result name="success">/teacher/subjectManage.jsp</result><!--跳转到试题列表管理页面--> </action> <action name="getRandomSubject" class="com.sanqing.action.GetRandomSubject"> <result name="success">/student/index.jsp</result><!--跳转到考试页面--> </action> <action name="submitExam" class="com.sanqing.action.SubmitExamAction"> <result name="success">/student/examResult.jsp</result><!--跳转到考试页面--> </action> <action name="showSubjectAnswer" class="com.sanqing.action.ShowSubjectAnswer"> <result name="success">/student/showAnswer.jsp</result><!--跳转到考试页面--> </action> <action name="queryStudentByName" class="com.sanqing.action.QueryStudentByName"> <result name="success">/teacher/studentManage.jsp</result><!--跳转到学生管理页面--> </action> <action name="queryStudentByClass" class="com.sanqing.action.QueryStudentByClass"> <result name="success">/teacher/studentManage.jsp</result><!--跳转到学生管理页面--> </action> </package> </struts>
2.
package com.sanqing.action; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import com.sanqing.po.Subject; import com.sanqing.service.SubjectService; import com.sanqing.service.SubjectServiceImpl; /* * 获得随机试题 */ public class GetRandomSubject extends ActionSupport{ private SubjectService subjectService = new SubjectServiceImpl(); public String execute() throws Exception { List<Subject> subjects = subjectService.randomFindSubject(20);//获得试题记录 HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("subjects", subjects); return SUCCESS; } }
3.
package com.sanqing.action; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import com.sanqing.po.Subject; import com.sanqing.service.SubjectService; import com.sanqing.service.SubjectServiceImpl; import com.sanqing.util.Page; import com.sanqing.util.PageResult; public class LikeQuerySubjectAction extends ActionSupport { private String subjectTitle; //试题标题 private int currentPage; //当前页 private SubjectService subjectService = new SubjectServiceImpl(); public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public String getSubjectTitle() { return subjectTitle; } public void setSubjectTitle(String subjectTitle) { this.subjectTitle = subjectTitle; } public String execute() throws Exception { Page page = new Page(); page.setEveryPage(10);//每页显示10条记录 page.setCurrentPage(currentPage);//设置当前页 PageResult pageResult = subjectService.likeQueryBySubjectTitle(subjectTitle, page); List<Subject> subjects = pageResult.getList();//获得试题记录 List<Subject> newSubjects = new ArrayList<Subject>();//新的记录 //给关键字标红 for(Subject subject : subjects) { String newTitle = subject.getSubjectTitle().replaceAll(subjectTitle, "<font color='red'>" + subjectTitle + "</font>"); subject.setSubjectTitle(newTitle); newSubjects.add(subject); } page = pageResult.getPage();//获得分页信息 HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("subjects", newSubjects); request.setAttribute("page", page); return SUCCESS; } }
4.
package com.sanqing.action; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.sanqing.po.Student; import com.sanqing.service.StudentService; import com.sanqing.service.StudentServiceImpl; import com.sanqing.service.TeacherService; import com.sanqing.service.TeacherServiceImpl; public class LoginAction extends ActionSupport { private String id; // 接受用户编号 private String password; // 接受用户密码 private String role; // 接受用户角色 private StudentService studentService = new StudentServiceImpl();//学生业务逻辑组件引用 private TeacherService teacherService = new TeacherServiceImpl();//教师业务逻辑组件引用 public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getRole() { return role; } public void setRole(String role) { this.role = role; } public String execute() throws Exception { if("student".equals(role)) {//如果以学生身份登录 if(studentService.allowLogin(id, password)) { Student studentInfo = studentService.getStudentInfo(id); //保存学生记录到session范围 Map session = ActionContext.getContext().getSession(); session.put("studentInfo", studentInfo); return "studentSuccess"; }else { addActionError("该学生编号不存在,或者密码不正确!"); return this.INPUT; } }else { if(teacherService.allowLogin(id, password)) { return "teacherSuccess"; }else { addActionError("该教师编号不存在,或者密码不正确!"); return this.INPUT; } } } }
5.
package com.sanqing.action; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import com.sanqing.po.Student; import com.sanqing.service.StudentService; import com.sanqing.service.StudentServiceImpl; public class QueryStudentByClass extends ActionSupport{ private String sclass; private StudentService studentService = new StudentServiceImpl(); public String getSclass() { return sclass; } public void setSclass(String sclass) { this.sclass = sclass; } public String execute() throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); List<Student> students = studentService.getStudentByClass(sclass); request.setAttribute("students", students); return this.SUCCESS; } }
6.
package com.sanqing.action; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import com.sanqing.po.Student; import com.sanqing.service.StudentService; import com.sanqing.service.StudentServiceImpl; public class QueryStudentByName extends ActionSupport{ private String studentName; private StudentService studentService = new StudentServiceImpl(); public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } public String execute() throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); List<Student> students = studentService.getStudentByName(studentName); request.setAttribute("students", students); return this.SUCCESS; } }
7.
package com.sanqing.action; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import com.sanqing.po.Subject; import com.sanqing.service.SubjectService; import com.sanqing.service.SubjectServiceImpl; import com.sanqing.util.Page; import com.sanqing.util.PageResult; public class QuerySubjectAction extends ActionSupport { private int currentPage; //当前页 private SubjectService subjectService = new SubjectServiceImpl(); public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public String execute() throws Exception { Page page = new Page(); page.setEveryPage(10);//每页显示10条记录 page.setCurrentPage(currentPage);//设置当前页 PageResult pageResult = subjectService.querySubjectByPage(page); List<Subject> subjects = pageResult.getList();//获得试题记录 page = pageResult.getPage();//获得分页信息 HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("subjects", subjects); request.setAttribute("page", page); return SUCCESS; } }
8.
package com.sanqing.action; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.sanqing.po.Subject; import com.sanqing.service.SubjectService; import com.sanqing.service.SubjectServiceImpl; /* * 显示试题答案 */ public class ShowSubjectAnswer extends ActionSupport{ private SubjectService subjectService = new SubjectServiceImpl(); public String execute() throws Exception { List<Subject> subjects = new ArrayList<Subject>();//保存学生考过的题目 HttpServletRequest request = ServletActionContext.getRequest(); Map session = ActionContext.getContext().getSession(); List<Integer> subjectIDs = (List<Integer>) session.get("subjectIDs"); for(Integer subjectID : subjectIDs) { Subject subject = subjectService.showSubjectParticular(subjectID);//通过试题编号查找试题 subjects.add(subject); } request.setAttribute("subjects", subjects); return SUCCESS; } }
9.
package com.sanqing.action; import com.opensymphony.xwork2.ActionSupport; import com.sanqing.po.Subject; import com.sanqing.service.SubjectService; import com.sanqing.service.SubjectServiceImpl; //该Action用来接收试题参数,并调用业务逻辑组件SubjectService来完成试题添加 public class SubjectAddAction extends ActionSupport{ private String subjectTitle; private String subjectOptionA; private String subjectOptionB; private String subjectOptionC; private String subjectOptionD; private String subjectAnswer; private String subjectParse; private SubjectService subjectService = new SubjectServiceImpl(); public String getSubjectTitle() { return subjectTitle; } public void setSubjectTitle(String subjectTitle) { this.subjectTitle = subjectTitle; } public String getSubjectOptionA() { return subjectOptionA; } public void setSubjectOptionA(String subjectOptionA) { this.subjectOptionA = subjectOptionA; } public String getSubjectOptionB() { return subjectOptionB; } public void setSubjectOptionB(String subjectOptionB) { this.subjectOptionB = subjectOptionB; } public String getSubjectOptionC() { return subjectOptionC; } public void setSubjectOptionC(String subjectOptionC) { this.subjectOptionC = subjectOptionC; } public String getSubjectOptionD() { return subjectOptionD; } public void setSubjectOptionD(String subjectOptionD) { this.subjectOptionD = subjectOptionD; } public String getSubjectAnswer() { return subjectAnswer; } public void setSubjectAnswer(String subjectAnswer) { this.subjectAnswer = subjectAnswer; } public String getSubjectParse() { return subjectParse; } public void setSubjectParse(String subjectParse) { this.subjectParse = subjectParse; } public String execute() throws Exception { Subject subject = new Subject(); subject.setSubjectTitle(subjectTitle); subject.setSubjectOptionA(subjectOptionA); subject.setSubjectOptionB(subjectOptionB); subject.setSubjectOptionC(subjectOptionC); subject.setSubjectOptionD(subjectOptionD); subject.setSubjectAnswer(subjectAnswer); subject.setSubjectParse(subjectParse); if(subjectService.saveSubject(subject)) { return SUCCESS; }else { this.addActionError("该试题已经添加过了,请不要重复添加!"); return INPUT; } } }
10.
package com.sanqing.action; import com.opensymphony.xwork2.ActionSupport; import com.sanqing.service.SubjectService; import com.sanqing.service.SubjectServiceImpl; public class SubjectDeleteAction extends ActionSupport{ private int subjectID; private SubjectService subjectService = new SubjectServiceImpl(); public int getSubjectID() { return subjectID; } public void setSubjectID(int subjectID) { this.subjectID = subjectID; } public String execute() throws Exception { subjectService.deleteSubject(subjectID); return SUCCESS; } }
11.
package com.sanqing.action; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import com.sanqing.po.Subject; import com.sanqing.service.SubjectService; import com.sanqing.service.SubjectServiceImpl; /* * 查看试题详细信息 */ public class SubjectParticularAction extends ActionSupport{ private int subjectID; private SubjectService subjectService = new SubjectServiceImpl(); public int getSubjectID() { return subjectID; } public void setSubjectID(int subjectID) { this.subjectID = subjectID; } public String execute() throws Exception { Subject subject = subjectService.showSubjectParticular(subjectID); ServletActionContext.getRequest().setAttribute("subject", subject); return SUCCESS; } }
12.
package com.sanqing.action; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import com.sanqing.po.Subject; import com.sanqing.service.SubjectService; import com.sanqing.service.SubjectServiceImpl; public class SubjectUpdateAction extends ActionSupport{ private int subjectID; private String subjectTitle; private String subjectOptionA; private String subjectOptionB; private String subjectOptionC; private String subjectOptionD; private String subjectAnswer; private String subjectParse; private SubjectService subjectService = new SubjectServiceImpl(); public int getSubjectID() { return subjectID; } public void setSubjectID(int subjectID) { this.subjectID = subjectID; } public String getSubjectTitle() { return subjectTitle; } public void setSubjectTitle(String subjectTitle) { this.subjectTitle = subjectTitle; } public String getSubjectOptionA() { return subjectOptionA; } public void setSubjectOptionA(String subjectOptionA) { this.subjectOptionA = subjectOptionA; } public String getSubjectOptionB() { return subjectOptionB; } public void setSubjectOptionB(String subjectOptionB) { this.subjectOptionB = subjectOptionB; } public String getSubjectOptionC() { return subjectOptionC; } public void setSubjectOptionC(String subjectOptionC) { this.subjectOptionC = subjectOptionC; } public String getSubjectOptionD() { return subjectOptionD; } public void setSubjectOptionD(String subjectOptionD) { this.subjectOptionD = subjectOptionD; } public String getSubjectAnswer() { return subjectAnswer; } public void setSubjectAnswer(String subjectAnswer) { this.subjectAnswer = subjectAnswer; } public String getSubjectParse() { return subjectParse; } public void setSubjectParse(String subjectParse) { this.subjectParse = subjectParse; } public String execute() throws Exception { Subject subject = new Subject(); subject.setSubjectID(subjectID); subject.setSubjectTitle(subjectTitle); subject.setSubjectOptionA(subjectOptionA); subject.setSubjectOptionB(subjectOptionB); subject.setSubjectOptionC(subjectOptionC); subject.setSubjectOptionD(subjectOptionD); subject.setSubjectAnswer(subjectAnswer); subject.setSubjectParse(subjectParse); subjectService.updateSubject(subject);//更新 ServletActionContext.getRequest().setAttribute("subject", subject); this.addActionMessage("更新成功!"); return SUCCESS; } }
13.
package com.sanqing.action; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import com.sanqing.po.Subject; import com.sanqing.service.SubjectService; import com.sanqing.service.SubjectServiceImpl; /* * 获得更新试题前的试题 */ public class SubjectUpdateBefore extends ActionSupport { private int subjectID; private SubjectService subjectService = new SubjectServiceImpl(); public int getSubjectID() { return subjectID; } public void setSubjectID(int subjectID) { this.subjectID = subjectID; } public String execute() throws Exception { Subject subject = subjectService.showSubjectParticular(subjectID); ServletActionContext.getRequest().setAttribute("subject", subject); return SUCCESS; } }
14.
package com.sanqing.action; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.sanqing.po.Student; import com.sanqing.service.StudentService; import com.sanqing.service.StudentServiceImpl; import com.sanqing.service.SubjectService; import com.sanqing.service.SubjectServiceImpl; /* * 提交试卷,并打分 */ public class SubmitExamAction extends ActionSupport{ private List<Integer> subjectID;//学生考试的题目 private SubjectService subjectService = new SubjectServiceImpl(); private StudentService studentService = new StudentServiceImpl(); public List<Integer> getSubjectID() { return subjectID; } public void setSubjectID(List<Integer> subjectID) { this.subjectID = subjectID; } public String execute() throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); List<String> studentAnswers = new ArrayList<String>(); for(int i = 0; i < 20; i++) { String answer = request.getParameter("subjectAnswer"+i); studentAnswers.add(answer); } int GeneralPoint = subjectService.accountResult(subjectID, studentAnswers); //设置成绩到学生信息中 Map session = ActionContext.getContext().getSession(); Student student = (Student)session.get("studentInfo"); String studentID = student.getStudentID(); studentService.setStudentResult(studentID, GeneralPoint); request.setAttribute("studentName", student.getStudentName());//保存学生姓名和总分数 request.setAttribute("GeneralPoint", GeneralPoint); session.put("subjectIDs", subjectID);//将考试题目保存到session,方便后面显示答案使用 return SUCCESS; } }
相关文章推荐
- java并发编程synchronized、volatile关键字及ReentrantLock类总结
- Spring mvc+hibernate+freemarker(开源项目)
- JavaWeb项目开发案例精粹-第3章在线考试系统-004Service层
- 本体学习笔记--在eclipse里操作本体的准备
- JavaWeb项目开发案例精粹-第3章在线考试系统-003Dao层
- Java 学习系列:LinkedList 的实现原理
- 理解Java虚拟机体系结构
- JavaWeb项目开发案例精粹-第3章在线考试系统-002配置文件及辅助类
- (补)环境变量的配置以及eclipse的快捷键
- java多线程小结,及解决应用挂死的问题
- 分析JAVA应用CPU占用过高的问题
- 初探Java8中的HashMap(转)
- Hibernate缓存问题
- java反射获取字段以及获取字段值和设置字段值
- think in java学习笔记
- JAVA运行时问题诊断-工具应用篇
- java获取获得Timestamp类型的当前系统时间
- bzoj 3198 spring
- Java并发编程:synchronized
- JavaWeb项目开发案例精粹-第3章在线考试系统-001设计