loadpaper.java

来自「这个是jsp编写的考试系统代码」· Java 代码 · 共 80 行

JAVA
80
字号
package kaoshi.monitor.action;

import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
import javax.servlet.ServletContext;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import kaoshi.bean.*;

public class LoadPaper extends Action {
	
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception
    {
        HttpSession session = request.getSession();
        ServletContext application = session.getServletContext();
		String filePath = application.getRealPath("/WEB-INF/paper/paper.xml");
        FileInputStream fis = new FileInputStream(filePath);
        //实例化一个SAXBuilder类,来操作XML文档
		SAXBuilder sb = new SAXBuilder();
		//从文件构造一个Document,因为XML文件中已经指定了编码,所以这里不必了		
		Document doc = sb.build(fis);
		Element paper = doc.getRootElement();
		String paperName = paper.getAttributeValue("name");	
		String paperAuthor = paper.getAttributeValue("author");
		application.setAttribute("paperName", paperName);
		application.setAttribute("paperAuthor", paperAuthor);
		//选择题
		ArrayList selectType = new ArrayList();
		try {
			Element p1 = paper.getChild("selectType");		
			List questions = p1.getChildren();
			for (int i=0; i<questions.size(); i++) {
				Element q = (Element)questions.get(i);
				Question question = new Question();
				question.setId(q.getAttributeValue("id"));
				question.setScore(q.getAttribute("score").getDoubleValue());
				question.setSpecify(HtmlSpecialCharater.filter(q.getAttributeValue("specify")));
				question.setReference(q.getAttributeValue("reference"));
				//System.out.println(question.getSpecify());
				List ops = q.getChildren();
				ArrayList options = new ArrayList();
				for (int j=0; j<ops.size(); j++) {
					Element op = (Element)ops.get(j);
					Option option = new Option();
					option.setId(op.getAttributeValue("id"));
					option.setText(HtmlSpecialCharater.filter(op.getAttributeValue("text")));
					//System.out.println(option.getText());	
					options.add(option);
				}
				question.setOptions(options);
				selectType.add(question);
			}
		} catch (Exception ex) {}
		ArrayList selectType2 = (ArrayList)selectType.clone();
		//主观题
		ArrayList uploadType = new ArrayList();
		try {
			Element p2 = paper.getChild("uploadType");		
			List questions = p2.getChildren();
			for (int i=0; i<questions.size(); i++) {
				Element q = (Element)questions.get(i);
				Question question = new Question();
				question.setSpecify(q.getAttributeValue("specify"));
				uploadType.add(question);
			}
		} catch (Exception ex) {}
		fis.close();
		application.setAttribute("selectType", selectType);
		application.setAttribute("selectType2", selectType2);	//用于生成答题卡
		application.setAttribute("uploadType", uploadType);
		
        return mapping.findForward("paper");
    }
    
}

⌨️ 快捷键说明

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