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("备注");
//实现将数据装入到
没有合适的资源?快使用搜索试试~ 我知道了~
java语言实现的基于SSM的签到系统
共311个文件
png:110个
java:41个
class:41个
需积分: 5 0 下载量 197 浏览量
2023-03-19
10:33:17
上传
评论
收藏 8.63MB ZIP 举报
温馨提示
java语言实现的基于SSM的签到系统
资源推荐
资源详情
资源评论
收起资源包目录
java语言实现的基于SSM的签到系统 (311个子文件)
ScoreServlet.class 17KB
AttendanceServlet.class 8KB
PhotoServlet.class 7KB
TeacherServlet.class 7KB
StudentServlet.class 7KB
TeacherDao.class 7KB
StudentDao.class 7KB
ScoreDao.class 6KB
LeaveServlet.class 6KB
CourseServlet.class 6KB
CpachaUtil.class 6KB
SelectedCourseServlet.class 6KB
CourseDao.class 6KB
LoginServlet.class 5KB
getphoto.class 5KB
ClazzServlet.class 5KB
SystemServlet.class 5KB
AttendanceDao.class 4KB
SelectedCourseDao.class 4KB
LeaveDao.class 4KB
ClazzDao.class 3KB
CpachaServlet.class 2KB
Student.class 2KB
tool.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
rldb.class 1KB
Admin.class 1KB
Page.class 963B
Clazz.class 929B
SelectedCourse.class 915B
SnGenerateUtil.class 906B
DateFormatUtil.class 705B
StringUtil.class 552B
.classpath 661B
org.eclipse.wst.common.component 491B
org.eclipse.wst.jsdt.ui.superType.container 49B
H-ui.css 138KB
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
layout.css 2KB
H-ui.login.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
filebox.css 306B
demo.css 306B
splitbutton.css 293B
numberbox.css 128B
validatebox.css 94B
iconfont.eot 92KB
loading.gif 8KB
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
demo.html 43KB
spring-2.5.6.jar 2.81MB
poi-3.9.jar 1.78MB
mysql-connector-java-5.1.7-bin.jar 693KB
commons-collections-3.2.1.jar 562KB
standard.jar 384KB
共 311 条
- 1
- 2
- 3
- 4
资源评论
爱敲代码的小雨
- 粉丝: 123
- 资源: 30
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功