Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/projectapollo/demo/Demo.java


1   package org.projectapollo.demo;
2   
3   import java.io.*;
4   import java.util.*;
5   
6   import javax.servlet.*;
7   import javax.servlet.http.*;
8   
9   import apollo.Session.*;
10  import apollo.*;
11  import apollo.Log.*;
12  import apollo.Statistics.*;
13  
14  /** Project Apollo Demo Site
15   * @author Joe Kislo
16   * @version 1.0 09/18/2000
17   */
18  public class Demo extends HttpServlet {
19    public static ManagerTracker MT;
20  
21    public void init(ServletConfig config) throws ServletException {
22      super.init(config);
23      String propFileName = config.getInitParameter("PropertiesFile");
24      
25      //Look to see if somebody passed in the PropertiesFile parameter
26      if (propFileName==null) {
27  
28        //They didn't, so use the normal apollo startup procedure
29        MT = InitSystem.initSystem(config, this);
30      } else {
31  
32        //Somebody passed in an explicit pointer to the properties file, better use it
33        Properties prop = new Properties();
34  
35        try {
36          prop.load(new FileInputStream(propFileName));
37        } catch (IOException io) {
38          throw new ServletException("IO Error reading properties file!");
39        }
40        MT = InitSystem.initSystem(config, prop);
41      }
42    }
43  
44    public void doGet (HttpServletRequest servletReq, HttpServletResponse servletRes) throws ServletException, IOException {
45      doService(servletReq,servletRes);
46    }
47  
48    public void doPost (HttpServletRequest servletReq, HttpServletResponse servletRes) throws ServletException, IOException {
49      doService(servletReq,servletRes);
50    }
51    private void doService(HttpServletRequest servletReq, HttpServletResponse servletRes) throws ServletException, IOException {
52      MT.getStatsManager().getStat("Servlet").incStat("TotalTransactions");
53      long startTime = System.currentTimeMillis();
54      try {
55        HTTPRequest req = new HTTPRequest(servletReq);
56        if (req.getParameter("SessionID") == null) {
57          String fquid;
58          if (req.hasValue("PageHandler")) {
59            fquid=req.getValue("PageHandler");
60          } else {
61            fquid="";
62          }
63          HTTPResponse response = MT.getPM().handleRequest(MT, fquid,req,null);
64          response.render(servletRes,servletReq);
65        } else {
66          HTTPResponse response;
67          try {
68            WebSession thisSession = MT.getSM().getSession(req.getParameter("SessionID"));
69            response = MT.getPM().handleRequest(MT, req.getParameter("PageHandler"), req,thisSession);
70          } catch (SessionExpired se) {
71            WebSession thisSession = MT.getSM().getSession(req.getParameter("SessionID"), true);
72            response = MT.getPM().handleRequest(MT, "SessionExpired", req,thisSession);
73          }
74          response.render(servletRes,servletReq);
75        }
76      } catch (Exception e) {
77        //Get the output stream
78  
79        ServletOutputStream out = servletRes.getOutputStream();
80        servletRes.setContentType("text/html");
81        if (e instanceof InvalidSessionID) {
82          out.println("Invalid session ID!  Try relogging in.");
83        } else {
84          //Add it to the stats
85          MT.getStatsManager().getStat("UserExceptions").incStat("TotalExceptions");
86          MT.getStatsManager().getStat("UserExceptions").addStat("Exceptions",new ExceptionData(e));
87  
88          MT.getLM().log(e);
89          HTTPWriter writer = new HTTPWriter(out);
90          e.printStackTrace(writer);
91          writer.close();
92        }
93      }
94      MT.getStatsManager().getStat("Servlet").incStat("TotalServletCPUTime",(((float) (System.currentTimeMillis() - startTime))/1000));
95    }
96  
97  
98    public void destroy() {
99      super.destroy();
100     MT.destroy();
101   }
102   public String getServletInfo() {
103     return "Project Apollo Demo Site";
104   }
105 
106 }