1.

 <?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;
}
}

JavaWeb项目开发案例精粹-第3章在线考试系统-005action层的更多相关文章

  1. JavaWeb项目开发案例精粹-第3章在线考试系统-007View层

    0.login.jsp <%@ page language="java" import="java.util.*" pageEncoding=" ...

  2. JavaWeb项目开发案例精粹-第3章在线考试系统-004Service层

    1. package com.sanqing.service; import java.util.List; import com.sanqing.po.Student; public interfa ...

  3. JavaWeb项目开发案例精粹-第3章在线考试系统-003Dao层

    1. package com.sanqing.dao; import java.util.List; import com.sanqing.po.Student; public interface S ...

  4. JavaWeb项目开发案例精粹-第3章在线考试系统-006实体层

    1. package com.sanqing.po; /* * 学生表,保存学生编号,系统密码 */ public class Student { private String studentID; ...

  5. JavaWeb项目开发案例精粹-第3章在线考试系统-002配置文件及辅助类

    1. <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5&qu ...

  6. JavaWeb项目开发案例精粹-第3章在线考试系统-001设计

    1. 2. 3. 4. # MySQL-Front 5.0 (Build 1.0) /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */; /*!40101 SET SQL ...

  7. JavaWeb项目开发案例精粹-第6章报价管理系统-05Action层

    0. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC &quo ...

  8. JavaWeb项目开发案例精粹-第6章报价管理系统-002辅助类及配置文件

    1. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www ...

  9. JavaWeb项目开发案例精粹-第2章投票系统-001设计

    1.项目结构 2.数据库设计 # MySQL-Front 5.0 (Build 1.0) /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */; /*!40101 SET ...

随机推荐

  1. 删除所有表数据的sql语句

    EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL' EXEC sp_MSForEachTable 'ALTER TABLE ? ...

  2. php 获取链接参数

    private function getQuerystr($url,$key){        $res = '';        $a = strpos($url,'?');        if($ ...

  3. sublime text3的配置(整理)

    一.代码片段 开发人员很多时候是在做一些重复的工作. 针对不同数据表的增删改查都差不多,重复来重去的.很久不写程序了,利用十一假期在家看看书,写写程序. 最近一直很喜欢使用Sublime Text,发 ...

  4. 为checkboxSelectionModel赋值

    store.on('load', function(store, records, options) { sm.clearSelections();   //清空数据 Ext.each(records ...

  5. for xml path以及sql合并查询

    sql中for xml path的用法. http://www.cnblogs.com/yanghaibo/archive/2010/06/04/1751405.html

  6. Spark菜鸟学习营Day5 分布式程序开发

    Spark菜鸟学习营Day5 分布式程序开发 这一章会和我们前面进行的需求分析进行呼应,完成程序的开发. 开发步骤 分布式系统开发是一个复杂的过程,对于复杂过程,我们需要分解为简单步骤的组合. 针对每 ...

  7. Operating Cisco Router

    Operating Cisco Router consider the hardware on the ends of the serial link, in particular where the ...

  8. iOS的SandBox的结构研究

    在模拟器中运行iOS程序,都会为该程序创建一个沙盒(SandBox).首先声明,我用的系统是Max OS X 10.7.3,编译器是Xcode 4.3.2.想要找到沙盒目录,先运行Finder,然后在 ...

  9. Nginx 老是抢先捕获了404 我想这个404我Yii项目来处理 要怎么配置?

    配置Nginx vhost的时候别指定error_page 它就不会跟Yii抢生意了 or 你弄一个frontendController   然后再里面 加上 $user->loginRequi ...

  10. Express/Koa/Hapi

    Express/Koa/Hapi 本文翻译自: https://www.airpair.com/node.js/posts/nodejs-framework-comparison-express-ko ...