Листинг 3.15. Метод completeCatalog для создания полного каталога товаров (CatalogTestServ.java)
public void completeCatalog( PrintWriter out ){
CatalogBean cb = new CatalogBean();
out.println("<h2> Complete Catalog</h2> ");
out.println("<table width=\"90%\" border=\"3\" align=\"center\" > ");
out.println("<thead> <tr> <th> Books</th> <th> CDs</th> <th> Gadgets</th> " + "</tr> </thead> ");
out.println("<tbody> <tr valign=\"top\"> <td> ");
String link = alias + "?action=showproduct" ;
cb.setInitialSelect("Books");
int ct = cb.getSelectedCount();
out.println("We have " + ct + " titles." + brcrlf );
cb.setOutput("short", link);
for( int i = 0 ; i < ct ; i++ ){
out.println( cb.doOutput(i) );
out.println( brcrlf ); out.println( brcrlf );
}
out.println("</td> <td> ");
cb.setInitialSelect("CDs");
ct = cb.getSelectedCount();
out.println("We have " + ct + " CD titles." + brcrlf );
cb.setOutput("short", link);
for( int i = 0 ; i < ct ; i++ ){
out.println( cb.doOutput(i) );
out.println( brcrlf ); out.println( brcrlf ); }
out.println("</td> <td> ");
cb.setInitialSelect("widgets");
ct = cb.getSelectedCount();
out.println("We have " + ct + " kinds." + brcrlf );
cb.setOutput("short", link );
for( int i = 0 ; i < ct ; i++ ){
out.println( cb.doOutput(i) );
out.println( brcrlf ); out.println( brcrlf );
}
out.println("</td> </tr> </table> ");
}
В листинге З 16 приводится текст первой части получившейся HTML-страницы Обратите внимание, что многие строки разбиты на несколько частей, чтобы поместиться на страницу книги Несмотря на использование таблицы стилей, экономящей память, вся страница полностью занимает 17 213 байт