package com.ischoolbar.programmer.servlet;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import com.ischoolbar.programmer.dao.CourseDao;
import com.ischoolbar.programmer.dao.ScoreDao;
import com.ischoolbar.programmer.dao.SelectedCourseDao;
import com.ischoolbar.programmer.dao.StudentDao;
import com.ischoolbar.programmer.dao.TeacherDao;
import com.ischoolbar.programmer.model.Course;
import com.ischoolbar.programmer.model.Page;
import com.ischoolbar.programmer.model.Score;
import com.ischoolbar.programmer.model.SelectedCourse;
import com.ischoolbar.programmer.model.Student;
import com.ischoolbar.programmer.model.Teacher;
import com.lizhou.exception.FileFormatException;
import com.lizhou.exception.NullFileException;
import com.lizhou.exception.ProtocolException;
import com.lizhou.exception.SizeException;
import com.lizhou.fileload.FileUpload;
public class ScoreServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = -153736421631912372L;
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{
doPost(request, response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{
String method = request.getParameter("method");
if("toScoreListView".equals(method)){
try {
request.getRequestDispatcher("view/scoreList.jsp").forward(request, response);
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else if("AddScore".equals(method)){
addScore(request,response);
}else if("ScoreList".equals(method)){
getScoreList(request,response);
}else if("EditScore".equals(method)){
editScore(request,response);
}else if("DeleteScore".equals(method)){
deleteScore(request,response);
}else if("ImportScore".equals(method)){
importScore(request,response);
}else if("ExportScoreList".equals(method)){
exportScore(request,response);
}else if("toScoreStatsView".equals(method)){
try {
request.getRequestDispatcher("view/scoreStats.jsp").forward(request, response);
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else if("getStatsList".equals(method)){
getStatsList(request,response);
}
}
private void getStatsList(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
int courseId = request.getParameter("courseid") == null ? 0 : Integer.parseInt(request.getParameter("courseid").toString());
String searchType = request.getParameter("searchType");
response.setCharacterEncoding("UTF-8");
if(courseId == 0){
try {
response.getWriter().write("error");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return;
}
ScoreDao scoreDao = new ScoreDao();
Score score = new Score();
score.setCourseId(courseId);
if("avg".equals(searchType)){
Map<String, Object> avgStats = scoreDao.getAvgStats(score);
List<Double> scoreList = new ArrayList<Double>();
scoreList.add(Double.parseDouble(avgStats.get("max_score").toString()));
scoreList.add(Double.parseDouble(avgStats.get("min_score").toString()));
scoreList.add(Double.parseDouble(avgStats.get("avg_score").toString()));
List<String> avgStringList = new ArrayList<String>();
avgStringList.add("最高分");
avgStringList.add("最低分");
avgStringList.add("平均分");
Map<String, Object> retMap = new HashMap<String, Object>();
retMap.put("courseName", avgStats.get("courseName").toString());
retMap.put("scoreList", scoreList);
retMap.put("avgList", avgStringList);
retMap.put("type", "suceess");
try {
response.getWriter().write(JSONObject.fromObject(retMap).toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return;
}
List<Map<String, Object>> scoreList = scoreDao.getScoreList(score);
List<Integer> numberList = new ArrayList<Integer>();
numberList.add(0);
numberList.add(0);
numberList.add(0);
numberList.add(0);
numberList.add(0);
List<String> rangeStringList = new ArrayList<String>();
rangeStringList.add("60分以下");
rangeStringList.add("60~70分");
rangeStringList.add("70~80分");
rangeStringList.add("80~90分");
rangeStringList.add("90~100分");
String courseName = "";
for(Map<String, Object> entry:scoreList){
courseName = entry.get("courseName").toString();
double scoreValue = Double.parseDouble(entry.get("score").toString());
if(scoreValue < 60){
numberList.set(0, numberList.get(0)+1);
continue;
}
if(scoreValue <= 70 && scoreValue >= 60){
numberList.set(1, numberList.get(1)+1);
continue;
}
if(scoreValue <= 80 && scoreValue > 70){
numberList.set(2, numberList.get(2)+1);
continue;
}
if(scoreValue <= 90 && scoreValue > 80){
numberList.set(3, numberList.get(3)+1);
continue;
}
if(scoreValue <= 100 && scoreValue > 90){
numberList.set(4, numberList.get(4)+1);
continue;
}
}
Map<String, Object> retMap = new HashMap<String, Object>();
retMap.put("courseName", courseName);
retMap.put("numberList", numberList);
retMap.put("rangeList", rangeStringList);
retMap.put("type", "suceess");
try {
response.getWriter().write(JSONObject.fromObject(retMap).toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void exportScore(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
int studentId = request.getParameter("studentid") == null ? 0 : Integer.parseInt(request.getParameter("studentid").toString());
int courseId = request.getParameter("courseid") == null ? 0 : Integer.parseInt(request.getParameter("courseid").toString());
//获取当前登录用户类型
int userType = Integer.parseInt(request.getSession().getAttribute("userType").toString());
if(userType == 2){
//如果是学生,只能查看自己的信息
Student currentUser = (Student)request.getSession().getAttribute("user");
studentId = currentUser.getId();
}
Score score = new Score();
score.setStudentId(studentId);
score.setCourseId(courseId);
try {
response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode("score_list_sid_"+studentId+"_cid_"+courseId+".xls", "UTF-8"));
response.setHeader("Connection", "close");
response.setHeader("Content-Type", "application/octet-stream");
ServletOutputStream outputStream = response.getOutputStream();
ScoreDao scoreDao = new ScoreDao();
List<Map<String, Object>> scoreList = scoreDao.getScoreList(score);
scoreDao.closeCon();
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
HSSFSheet createSheet = hssfWorkbook.createSheet("成绩列表");
HSSFRow createRow = createSheet.createRow(0);
createRow.createCell(0).setCellValue("学生");
createRow.createCell(1).setCellValue("课程");
createRow.createCell(2).setCellValue("成绩");
createRow.createCell(3).setCellValue("备注");
//实现将数据装入到
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
相关博客链接:https://blog.csdn.net/Luoxiaobaia/article/details/124979165(功能未展示全面) 设计一个允许多人管理使用的,多功能的教学信息管理系统,运用多种设计模式。主要功能包括: 1. 导航菜单 2. 学生档案管理 3. 课程类型管理 4. 老师档案管理 5. 学生课程管理 6. 选课信息管理 7. 学生到课管理 8. 请假信息管理 9. 教材费用信息列表 10. 登录界面(学生/老师/管理员) 11. 学生修改密码 文件夹内有源码、运行截图与设计模式类图
资源推荐
资源详情
资源评论
收起资源包目录
【Java满分课设】多种设计模式+多功能+多人员登录的教学信息管理系统.zip (322个子文件)
ScoreServlet.class 16KB
AttendanceServlet.class 7KB
StudentDao.class 6KB
TeacherDao.class 6KB
TeacherServlet.class 6KB
PhotoServlet.class 6KB
StudentServlet.class 6KB
ScoreDao.class 6KB
LeaveServlet.class 6KB
CpachaUtil.class 6KB
CourseServlet.class 6KB
CourseDao.class 6KB
SelectedCourseServlet.class 6KB
ClazzServlet.class 5KB
SystemServlet.class 5KB
AttendanceDao.class 4KB
SelectedCourseDao.class 4KB
LoginServlet.class 4KB
LeaveDao.class 4KB
ClazzDao.class 3KB
CpachaServlet.class 2KB
Student.class 2KB
Teacher.class 2KB
AdminDao.class 2KB
DbUtil.class 2KB
Course.class 2KB
LoginFilter.class 2KB
Leave.class 1KB
BaseDao.class 1KB
Score.class 1KB
Attendance.class 1KB
Admin.class 1KB
Page.class 963B
Clazz.class 929B
SelectedCourse.class 915B
SnGenerateUtil.class 906B
DateFormatUtil.class 705B
StringUtil.class 526B
.classpath 2KB
org.eclipse.wst.common.component 503B
org.eclipse.wst.jsdt.ui.superType.container 49B
H-ui.css 139KB
H-ui.min.css 99KB
easyui.css 54KB
iconfont.css 12KB
icheck.css 12KB
tabs.css 9KB
datagrid.css 5KB
icon.css 4KB
linkbutton.css 4KB
color.css 4KB
calendar.css 4KB
tree.css 3KB
panel.css 3KB
default.css 2KB
menu.css 2KB
window.css 2KB
tooltip.css 2KB
menubutton.css 2KB
searchbox.css 2KB
datalist.css 2KB
textbox.css 2KB
H-ui.login.css 2KB
layout.css 2KB
slider.css 2KB
spinner.css 1KB
pagination.css 1KB
skin.css 1KB
combo.css 1KB
accordion.css 838B
messager.css 804B
propertygrid.css 716B
progressbar.css 653B
datebox.css 619B
dialog.css 560B
combobox.css 396B
demo.css 306B
filebox.css 306B
splitbutton.css 293B
numberbox.css 128B
validatebox.css 94B
Thumbs.db 56KB
Thumbs.db 18KB
Thumbs.db 13KB
Thumbs.db 4KB
类图.docx 231KB
iconfont.eot 92KB
loading.gif 8KB
from - .gif 5KB
loading_072.gif 4KB
loading.gif 2KB
hamburger-retina.gif 1KB
hamburger.gif 1KB
us.gif 367B
cn.gif 366B
blank.gif 43B
blank.gif 43B
.gitignore 275B
demo.html 43KB
源码.iml 344B
共 322 条
- 1
- 2
- 3
- 4
资源评论
- 2201_759824342023-07-07简直是宝藏资源,实用价值很高,支持!
米莱虾
- 粉丝: 5w+
- 资源: 35
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功