calculator.jsp
001 <%@ page import="trail.interceptor.*,
002                  javax.naming.*,
003                  java.text.*,
004                  java.util.ArrayList"%>
005 
006 <%!
007   private NumberFormat nf = null;
008 
009   public void jspInit () {
010     nf = NumberFormat.getInstance();
011     nf.setMaximumFractionDigits(2);
012   }
013 %>
014 
015 <%
016   Calculator cal =
017       (Calculatorsession.getAttribute("interceptor_cal");
018   if (cal == null) {
019     try {
020       InitialContext ctx = new InitialContext();
021       cal = (Calculatorctx.lookup(
022                   "EJB3Trail/InterceptorCalculator/local");
023       session.setAttribute ("interceptor_cal", cal);
024     catch (Exception e) {
025       e.printStackTrace ();
026     }
027   }
028 
029   String result;
030 
031   int start = 25;
032   int end = 65;
033   double growthrate = 0.08;
034   double saving = 300.0;
035 
036   // clear the call trace
037   cal.setTrace ("");
038 
039   try {
040     start = Integer.parseInt(request.getParameter ("start"));
041     end = Integer.parseInt(request.getParameter ("end"));
042     growthrate = Double.parseDouble(request.getParameter ("growthrate"));
043     saving = Double.parseDouble(request.getParameter ("saving"));
044 
045     double res = cal.calculate(start, end, growthrate, saving);
046     result = nf.format(res);
047 
048   catch (Exception e) {
049     // e.printStackTrace ();
050     result = "Not valid";
051   }
052 %>
053 
054 <html><body>
055 
056 <p>Investment calculator with session history<br/>
057 <form action="calculator.jsp" method="POST">
058   Start age = <input type="text" name="start" value="<%=start%>"><br/>
059   End age   = <input type="text" name="end" value="<%=end%>"><br/>
060   Annual Growth Rate = <input type="text" name="growthrate" value="<%=growthrate%>"><br/>
061   Montly Saving = <input type="text" name="saving" value="<%=saving%>"><br/>
062   <input type="submit" value="Calculate">
063   <INPUT type="button" value="Close Window" onClick="window.close()">
064 </form>
065 </p>
066 
067 <p>The result from the last calculation: The total investment at end age is
068 <b><%=result%></b></p>
069 
070 <p><i>Past results</i><br/>
071 <%
072   int entries = cal.getStarts().size();
073 %>
074 <table>
075 <tr>
076 <td>Start Age</td>
077 <td>Edn Age</td>
078 <td>Annual Growth rate</td>
079 <td>Monthly savings</td>
080 <td><b>Total investment</b></td>
081 </tr>
082 
083 <%
084   ArrayList starts = cal.getStarts();
085   ArrayList ends = cal.getEnds ();
086   ArrayList growthrates = cal.getGrowthrates ();
087   ArrayList savings = cal.getSavings ();
088   ArrayList results = cal.getResults ();
089   for (int i = 0; i < entries; i++) {
090 %>
091 
092 <tr>
093 <td><%=starts.get(i)%></td>
094 <td><%=ends.get(i)%></td>
095 <td><%=nf.format(growthrates.get(i))%></td>
096 <td><%=nf.format(savings.get(i))%></td>
097 <td><%=nf.format(results.get(i))%></td>
098 </tr>
099 
100 <%
101   }
102 %>
103 </table></p>
104 
105 <p><i>Call trace in last invocation</i><br/>
106 <%=cal.getTrace()%>
107 </p>
108 
109 </body></html>