⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 handpaper.java

📁 这个是jsp编写的考试系统代码
💻 JAVA
字号:
package kaoshi.student.action;

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.upload.*;
import kaoshi.bean.*;

public class HandPaper extends Action {

    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception
    {   
    	//检查上传文件是否超限
    	Boolean maxLengthExceeded = (Boolean)request.getAttribute(
        			MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED);        
        if ((maxLengthExceeded != null) && (maxLengthExceeded.booleanValue())) {
        	request.setAttribute("errorMessage", "上传文件长度太大");
        	return mapping.findForward("prompt");
        }
    	DynaActionForm paperForm = (DynaActionForm)form;
    	String sid = (String)paperForm.get("sid");    	
    	String nm = (String)paperForm.get("nm");
    	String ip = request.getRemoteAddr();
        ServletContext application = request.getSession().getServletContext();
		ExamHall kaochang = (ExamHall)application.getAttribute("kaochang");
		if (!kaochang.isValidPaper(sid, ip)) {
			request.setAttribute("errorMessage", "无效试卷");
        	return mapping.findForward("prompt");
    	}
    	//生成答题卡文件并判分		
		String path = application.getRealPath("/WEB-INF/result");
		FileWriter fw = new FileWriter(path + "/" + sid + ".htm");
		fw.write("学号: "+sid+"<br>姓名: "+nm+"<br>生成时间: "+
			new Date()+"<br><hr>");
		fw.write("<table><tr><td>题号</td><td>答案</td><td>对错</td></tr>");
		double t = 0.0;	
		//用原始顺序改卷	
		ArrayList selectType = (ArrayList)application.getAttribute("selectType2");
		for (int i=0,n=selectType.size(); i<n; i++) {
			Question question = (Question)selectType.get(i);
			String qid = question.getId();			
			String s = (String)paperForm.get(qid);
			boolean correct = (s!=null)&&(s.equals(question.getReference()));
			if (correct) {
				t = t + question.getScore();
			}
			fw.write("<tr><td>"+qid+"</td><td>"+s+"</td><td>"+correct+"</td></tr>");
		}
		fw.write("</table><hr><br>客观题得分: "+t);
		fw.close();
		//在成绩单上报告客观题得分
		kaochang.reportResult(sid, t);
		//保存主观题压缩文件
		FormFile uploadType =  (FormFile)paperForm.get("uploadType");		
		if ((uploadType!=null)&&(uploadType.getFileSize()>0)) {
			String oldFileName = uploadType.getFileName();
			String suffix = oldFileName.substring(oldFileName.lastIndexOf('.'));
			InputStream in = uploadType.getInputStream();
			OutputStream out = new FileOutputStream(path +"/"+ sid + nm + suffix);
			byte[] temp = new byte[1024];
			while ((in.read(temp)) != -1) {
				out.write(temp);
			}
			in.close();
			out.close();
		}
        request.setAttribute("sid", sid);
        request.setAttribute("nm", nm);
        request.setAttribute("total", t);
        return mapping.findForward("end");
    }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -