Электронный магазин на Java и XML

         

Класс Recorder - часть 2


Листинг 7.20. Начало исходного кода класса Recorder (Recorder.java)

package com.XmlEcomBook.Chap07;

import org.w3c.dom.* ; import com.sun.xml.tree.* ; import java.io.*; import java.util.* ; import javax.servlet.*; import javax.servlet.http.*;

public class Recorder { // this String is used to prevent more than one Recorder from // writing anywhere at the "same time" static String filelock = "RecorderLock" ;

// these are instance variables String userid, usertype, sessionid ; String qresultStr ; String source ; // the xml file String method, output ; // how and where we save Hashtable record ; // one string per response public boolean terminated = false ;

Конструктор класса Recorder, показанный в листинге 7.21, вызывается из метода doGet сервлета. Он задает несколько переменных, характеризующих конкретного пользователя. Также он создает хэш-таблицу record, которая будет использоваться для записи ответов на вопросы.

В листинге 7.21 также показан метод setMethods, который определяет.метод записи результатов и атрибутов файла с помощью документа XML. Также он создает открывающий тег Qresults и сохраняет его в переменной qresultStr для дальнейшего использования.

Листинг 7.21. Конструктор класса Recorder и метод setMethods (Recorder.java)

public Recorder(String id, String typ, String ses,String src ){ userid = id ; usertype = typ ; sessionid = ses ; source = src ; record = new Hashtable(); }

/* method information from <Questionnaire> attributes <Questionnaire title="First Test Quest" author="wbb" date="May 19, 2000" method="xml" file="e:\scripts\questionnaire\testresult.xml" > */ public void setMethods( Document doc ){ NamedNodeMap nnm = doc.getDocumentElement().getAttributes(); method = nnm.getNamedItem("method").getNodeValue(); output = nnm.getNamedItem("file").getNodeValue(); // for xml method StringBuffer sb = new StringBuffer( 50 ); sb.append("<Qresults source=\""); sb.append( source ); sb.append( "\" date=\"" ); sb.append( new Date().toString() ); sb.append( "\" userid=\""); sb.append(userid); sb.append( "\" usertype=\"" ) ; sb.append( usertype ); sb.append( "\" sessionid=\""); sb.append( sessionid ); sb.append("\">\r\n"); qresultStr = sb.toString(); }




Содержание  Назад  Вперед