Статические переменные...
Листинг 4.4. Статические переменные и метод mit в сервлете CatalogServ (CatalogServ.java)
package com.XmlEcomBook.catalog;
import java.io.*;
import java.util.* ;
import javax.servlet.*;
import javax.servlet.http.*;
public class CatalogServ extends HttpServlet
{
static String brcrlf = "<br />
\r\n" ;
static String version = "1.03 Oct 17, 2000";
static String cssLinkA = "<link rel=\"stylesheet\" href=\"" ;
// following is part of a web server URL for the style sheet
static String cssLinkB = "XmlEcommBook/catalog/catalog.css" ;
static String cssLinkC = "\" type=\"text/css\" media=\"screen\" >
" ;
static String resourcepath = "XmlEcommBook/catalog/" ;
static String host = "http://localhost/";
// these are servlet engine aliases
static String servlet = "servlet/catalog" ;
static String checkout = "servlet/checkout" ;
// these are complete webserver paths
static String cssLink = cssLinkA + host + cssLinkB + cssLinkC ;
static String alias ; // for catalog servlet
static String checkoutalias ;
static String resources ; // for images, style sheets, etc
String catPath = "e:\\scripts\\XMLgifts" ; // for xml
String catName = "catalog.xml" ;
Properties catProp = new Properties();
public void init(ServletConfig config) throws ServletException
{ try {
super.init(config);
System.out.println("CatalogTestServ init called, version "
+ version );
String tmp = config.getInitParameter("workdir");
if( tmp != null ) catPath = tmp ;
File f = new File( catPath, "catalog.properties");
if( f.exists() && f.canRead() ){
FileInputStream fis = new FileInputStream(f) ;
catProp.load( fis );
fis.close();
tmp = catProp.getProperty("csspath");
if( tmp != null ) cssLinkB = tmp;
tmp = catProp.getProperty("host");
if( tmp != null ) host = tmp ;
tmp = catProp.getProperty("resourcepath" ) ;
if( tmp != null ) resourcepath = tmp ;
tmp = catProp.getProperty("catalogservlet");
if( tmp != null ) servlet = tmp ;
tmp = catProp.getProperty("checkoutservlet" );
if( tmp != null ) checkout = tmp ;
}
else { System.out.println ("CatalogServ can't read catalog.properties");
}
resources = host + resourcepath ;
alias = host + servlet ;
checkoutalias = host + checkout ;
System.out.println( "resources:" + resources );
System.out.println("servlet: " + alias );
System.out.println("checkout: " + checkoutalias );
CatalogBean.setTheCatalog( catPath, catName );
CatalogBean.setResourcePath( resources );
}catch( Exception e ){
System.out.println("CatalogTestServ init " + e );
}
}
Заметим, что метод init вызывает два статических метода из класса CatalogBean. Вызов метода setTheCatal од необходим для считывания данных из файла XML, а метод setTheResoursePath устанавливает путь, который будет использоваться для нахождения таких ресурсов, как изображения товаров. Определения класса Gala- togBean вы найдете далее в этой главе в разделе «Класс CalatogBean».
Содержание раздела