001 <%@ page import="trail.lifecycle.*,
002 javax.naming.*,
003 java.text.*,
004 java.util.ArrayList,
005 java.security.Principal"%>
006
007 <%!
008 private NumberFormat nf = null;
009
010 public void jspInit () {
011 nf = NumberFormat.getInstance();
012 nf.setMaximumFractionDigits(2);
013 }
014 %>
015
016 <html>
017
018 <%
019 Calculator cal =
020 (Calculator) session.getAttribute("lifecycle_cal");
021 if (cal == null) {
022 try {
023 InitialContext ctx = new InitialContext();
024 cal = (Calculator) ctx.lookup(
025 "EJB3Trail/SessionCalculator/local");
026 session.setAttribute ("lifecycle_cal", cal);
027 } catch (Exception e) {
028 e.printStackTrace ();
029 }
030 }
031
032 if ("Logout".equals(request.getParameter("action"))) {
033 cal.stopSession ();
034 session.setAttribute ("lifecycle_cal", null);
035 %>
036 <head><meta http-equiv="REFRESH" content="0; URL=calculator.jsp"></head>
037 <%
038 return;
039 }
040
041 String result;
042
043 int start = 25;
044 int end = 65;
045 double growthrate = 0.08;
046 double saving = 300.0;
047
048 try {
049 start = Integer.parseInt(request.getParameter ("start"));
050 end = Integer.parseInt(request.getParameter ("end"));
051 growthrate = Double.parseDouble(request.getParameter ("growthrate"));
052 saving = Double.parseDouble(request.getParameter ("saving"));
053
054 double res = cal.calculate(start, end, growthrate, saving);
055 result = nf.format(res);
056
057 } catch (Exception e) {
058 // e.printStackTrace ();
059 result = "Not valid";
060 }
061 %>
062
063 <body>
064
065 <p><center>
066 <form action="calculator.jsp" method="POST">
067 <input type="hidden" name="action" value="Logout"><br/>
068 <input type="submit" value="Terminate current session">
069 </form>
070 </center></p>
071
072 <p>Investment calculator with session history<br/>
073 This calculator has served <b><%=SessionRecord.totalSess%></b> sessions (i.e., unique users). Among them, <b><%=SessionRecord.activeSess%></b> sessions are currently active. Among the active sessions, <b><%=SessionRecord.pausedSess%></b> sessions are currently stored out of the RAM.<br/>
074
075 <form action="calculator.jsp" method="POST">
076 Start age = <input type="text" name="start" value="<%=start%>"><br/>
077 End age = <input type="text" name="end" value="<%=end%>"><br/>
078 Annual Growth Rate = <input type="text" name="growthrate" value="<%=growthrate%>"><br/>
079 Montly Saving = <input type="text" name="saving" value="<%=saving%>"><br/>
080 <input type="submit" value="Calculate">
081 <INPUT type="button" value="Close Window" onClick="window.close()">
082 </form>
083 </p>
084
085 <p>The result from the last calculation: The total investment at end age is
086 <b><%=result%></b></p>
087
088 <p><i>Past results</i><br/>
089 <%
090 int entries = cal.getStarts().size();
091 %>
092 <table>
093 <tr>
094 <td>Start Age</td>
095 <td>Edn Age</td>
096 <td>Annual Growth rate</td>
097 <td>Monthly savings</td>
098 <td><b>Total investment</b></td>
099 </tr>
100
101 <%
102 for (int i = 0; i < entries; i++) {
103 %>
104
105 <tr>
106 <td><%=cal.getStarts().get(i)%></td>
107 <td><%=cal.getEnds().get(i)%></td>
108 <td><%=nf.format(cal.getGrowthrates().get(i))%></td>
109 <td><%=nf.format(cal.getSavings().get(i))%></td>
110 <td><%=nf.format(cal.getResults().get(i))%></td>
111 </tr>
112
113 <%
114 }
115 %>
116 </table></p>
117
118 </body></html>
|