Листинг 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 для дальнейшего использования.