001 <%@ page contentType="text/html; charset=Shift_JIS" %>
002 <%@ page import="trail.lifecycle.*,
003 javax.naming.*,
004 java.text.*,
005 java.util.ArrayList,
006 java.security.Principal"%>
007
008 <%!
009 private NumberFormat nf = null;
010
011 public void jspInit () {
012 nf = NumberFormat.getInstance();
013 nf.setMaximumFractionDigits(2);
014 }
015 %>
016
017 <html>
018
019 <%
020 Calculator cal =
021 (Calculator) session.getAttribute("lifecycle_cal");
022 if (cal == null) {
023 try {
024 InitialContext ctx = new InitialContext();
025 cal = (Calculator) ctx.lookup(
026 "EJB3Trail/SessionCalculator/local");
027 session.setAttribute ("lifecycle_cal", cal);
028 } catch (Exception e) {
029 e.printStackTrace ();
030 }
031 }
032
033 if ("Logout".equals(request.getParameter("action"))) {
034 cal.stopSession ();
035 session.setAttribute ("lifecycle_cal", null);
036 %>
037 <head><meta http-equiv="REFRESH" content="0; URL=calculator.jsp"></head>
038 <%
039 return;
040 }
041
042 String result;
043
044 int start = 25;
045 int end = 65;
046 double growthrate = 0.08;
047 double saving = 300.0;
048
049 try {
050 start = Integer.parseInt(request.getParameter ("start"));
051 end = Integer.parseInt(request.getParameter ("end"));
052 growthrate = Double.parseDouble(request.getParameter ("growthrate"));
053 saving = Double.parseDouble(request.getParameter ("saving"));
054
055 double res = cal.calculate(start, end, growthrate, saving);
056 result = nf.format(res);
057
058 } catch (Exception e) {
059 // e.printStackTrace ();
060 result = "Not valid";
061 }
062 %>
063
064 <body>
065
066 <p><center>
067 <form action="calculator.jsp" method="POST">
068 <input type="hidden" name="action" value="Logout"><br/>
069 <input type="submit" value="現在のセッションを終了する">
070 </form>
071 </center></p>
072
073 <p>セッション履歴機能付きの投資計算プログラム<br/>
074
075 この計算プログラムは<b><%=SessionRecord.totalSess%></b>個のセッション(つまり、ユーザ)を処理しました。これらのうち、<b><%=SessionRecord.activeSess%></b>個のセッションが現在アクティブです。アクティブなセッションのうち、<b><%=SessionRecord.pausedSess%></b>個のセッションが現在キャッシュに退避されています。<br/>
076
077 <form action="calculator.jsp" method="POST">
078 開始年齢 = <input type="text" name="start" value="<%=start%>"><br/>
079 終了年齢 = <input type="text" name="end" value="<%=end%>"><br/>
080 年成長率 = <input type="text" name="growthrate" value="<%=growthrate%>"><br/>
081 月掛金額 = <input type="text" name="saving" value="<%=saving%>"><br/>
082 <input type="submit" value="計算">
083 <INPUT type="button" value="閉じる" onClick="window.close()">
084 </form>
085 </p>
086
087 <p>最新の計算結果:終了年齢での合計投資額は、
088 <b><%=result%></b></p>
089
090 <p><i>過去の計算結果</i><br/>
091 <%
092 int entries = cal.getStarts().size();
093 %>
094 <table>
095 <tr>
096 <td>開始年齢</td>
097 <td>終了年齢</td>
098 <td>年成長率</td>
099 <td>月掛金額</td>
100 <td><b>合計投資額</b></td>
101 </tr>
102
103 <%
104 for (int i = 0; i < entries; i++) {
105 %>
106
107 <tr>
108 <td><%=cal.getStarts().get(i)%></td>
109 <td><%=cal.getEnds().get(i)%></td>
110 <td><%=nf.format(cal.getGrowthrates().get(i))%></td>
111 <td><%=nf.format(cal.getSavings().get(i))%></td>
112 <td><%=nf.format(cal.getResults().get(i))%></td>
113 </tr>
114
115 <%
116 }
117 %>
118 </table></p>
119
120 </body></html>
|