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

         

Пример сервлета для просмотра результатов отчета - часть 3


В первом запросе, выполняемом методом POST, значение переменной action равно select. Как показано в листинге 7.33, такой запрос инициирует вывод раскрывающегося списка всех доступных файлов с результатами. При этом используется метод createQList.

Листинг 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 ); }




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