home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / VCAFE.3.0A / Sample.bin / PageHandler.java < prev    next >
Text File  |  1998-09-13  |  4KB  |  189 lines

  1. /*
  2.  * Symantec Java Servlet Sample
  3.  *
  4.  * (c) 1998 Symantec
  5.  *
  6.  *
  7.  */
  8.  
  9. package symantec.sourcebook.creditcheck;
  10.  
  11.  
  12. import java.io.*;
  13. import javax.servlet.*;
  14. import javax.servlet.http.*;
  15.  
  16. /**
  17.  *  This class is a generic SuperClass for handling
  18.  *  http pages.  The page handler serves the page,
  19.  *  validates input data, and decides which page should be
  20.  *  served next.
  21.  *
  22.  *
  23.  */
  24.  
  25. public class PageHandler 
  26. {
  27.     /**
  28.      * String which holds the page's html.
  29.      *
  30.      */
  31.     
  32.     public String pageHtml;
  33.     
  34.     /**
  35.      * Name of the file which contains the HTML for this page.
  36.      *
  37.      */
  38.      
  39.     protected static final String PAGEBASE = "private_html" +
  40.                                              File.separator + "symantec" +  File.separator;
  41.                                              
  42.     /**
  43.      * Create default PageHandler object.
  44.      *
  45.      */
  46.     
  47.     public PageHandler()
  48.     {
  49.     
  50.     }
  51.     
  52.     /**
  53.      * Return the file name which contains the HTML for this page.
  54.      *
  55.      */
  56.     public String pageName()
  57.     {
  58.         return null;
  59.     }
  60.  
  61.     /**
  62.      * Serve this page.  Read the page's HTML from disk, customize it,
  63.      * and write it to the HttpServletResponse's stream.
  64.      *
  65.      */
  66.    
  67.    protected void serve(Object pageData,HttpServletResponse response) throws IOException
  68.    {
  69.         read();
  70.         customize(pageData);
  71.         write(response);      
  72.    }
  73.    
  74.     /**
  75.      * Read a page from disk.  Place the results in
  76.      * pageHtml.
  77.      *
  78.      */
  79.     
  80.    protected void read() throws IOException
  81.    {
  82.     
  83.         FileInputStream in = new FileInputStream(pageName());    
  84.         byte[] b = new byte[in.available()];
  85.         in.read(b);
  86.         in.close();
  87.         pageHtml = new String(b);
  88.         
  89.    }
  90.    
  91.     /**
  92.      * Customize the page HTML.
  93.      *
  94.      */
  95.    
  96.    protected void customize(Object pageData) throws IOException
  97.    {
  98.         // default routine does nothing
  99.    }
  100.    
  101.    
  102.    /**
  103.     * Write the page to the respons output stream.
  104.     *
  105.     *
  106.     */
  107.     
  108.    protected void write(HttpServletResponse response) throws IOException
  109.    {
  110.         response.setContentType("text/html");
  111.         response.setContentLength(pageHtml.length());
  112.         ServletOutputStream out = response.getOutputStream();
  113.         out.print(pageHtml);
  114.         
  115.         
  116.    }
  117.    
  118.    
  119.    /**
  120.     * Validate the contents of the form.
  121.     * Return and object containing the form's validated data.
  122.     *
  123.     *
  124.     */
  125.  
  126.    protected Object validate(ServletConfig config,HttpServletRequest request,HttpServletResponse response) throws IOException
  127.    {
  128.        return null;
  129.    }
  130.  
  131.    /**
  132.     * Determine which page should be served next.
  133.     * (Acutally, it's often determined in validate and just
  134.     *  passed back in this call(
  135.     *
  136.     *
  137.     */
  138.  
  139.    
  140.    public int nextPage()
  141.    {
  142.         return 0;
  143.    }
  144.         
  145.  
  146.    /**
  147.     *
  148.     * Replace special marker in the HTML page with
  149.     * the specified text.
  150.     *
  151.     */
  152.     
  153.    protected void insert(String marker,String text)
  154.    {
  155.  
  156.         String replaceThis = "<!--"+marker+"-->";
  157.  
  158.         
  159.         int pos = pageHtml.indexOf(replaceThis);
  160.  
  161.         if(pos >= 0) 
  162.         {
  163.  
  164.             String newpageHtml = "";
  165.  
  166.             if(pos > 0) newpageHtml += pageHtml.substring(0,pos);
  167.             newpageHtml += text;
  168.             if(pos+replaceThis.length() < pageHtml.length()  )
  169.                 newpageHtml += pageHtml.substring(pos+replaceThis.length());
  170.  
  171.            pageHtml = newpageHtml;
  172.         }
  173.         
  174.    }
  175.    /**
  176.     * get request parameter, or, if no parameter, return the
  177.     * default.
  178.     *
  179.     */
  180.     
  181.     protected String getParameter(HttpServletRequest request,String name,String defaultValue)
  182.     {
  183.         String value = request.getParameter(name);
  184.         if(value != null) return value;
  185.         return defaultValue;
  186.     }
  187.  
  188.     
  189. }