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

         

Первая часть метода...



Листинг 7.33. Первая часть метода doPost (QanalysisServ.java)

public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html");
PrintWriter out = new PrintWriter(resp.getOutputStream());
String source = req.getParameter( "source");
String action = req.getParameter( "action");
String ansfile = req.getParameter("ansfile");
// select when choosing quesionnaire XML file // analyze when choosing reformatted result file String[] files = null ; if( action == null || source == null || source.length() == 0 ){ errorMsg(out,"Bad source selection", null );
return ; } // source is short name from properties String srcfile = qProp.getProperty( source );
if( srcfile == null ) { errorMsg( out, "Bad Source lookup", null );
return ; } HttpSession session = req.getSession(false);
try { if( session == null ){ errorMsg(out, "No Session ", null );
return ; } DOMlibrary lib = DOMlibrary.getLibrary();
System.out.println("DOMlibrary ok, try for " + srcfile );
Document doc = lib.getDOM( srcfile );
if( doc == null ){ errorMsg( out, "DOM doc failed - unable to continue", null );
return ; } PrepQxml pQ = (PrepQxml)session.getValue("prepqxml");
// substitute getAttribute if using 2.2 api header( out );
if( pQ == null ){ // first pass pQ = new PrepQxml( doc );
files = pQ.createFiles();
session.putValue("prepqxml",pQ);
} else { files = pQ.getFiles();
} if( action.equals("select") ){ out.println("<h1>
Test: " + pQ.title +"</h1>
" );
out.println("<p>
XML questionnaire file: <i>
" + source + "</i>
</p>
");
out.println("<p>
Author: " + pQ.author + " Dated: " + pQ.date + "</p>
");
out.println("<p>
The primary answer file is: " + pQ.primaryfile + "</p>
" );
out.println("<p>
There " );
if( files.length < 2 ) out.println("are no other ");
if( files.length == 2 ) out.println("is one other ");
if( files.length >
2 ) out.println( (files.length - 1) + " other ");
out.println("answer file(s). Select a file and click <b>
Start</b>
</p>
");
createQList( out, source, files );
}

Когда пользователь выберет один из файлов с результатами, переменная action принимает значение analyze. Как показано в листинге 7.34, это инициирует создание нового объекта TallyQues, который используется для формирования таблицы с результатами.



Содержание раздела