calculator.jsp
001 <%page contentType="text/html; charset=Shift_JIS" %>
002 <%page import="javax.naming.*,
003                  java.text.*,
004                  java.util.*, org.jboss.security.*,
005                  trail.entity.beans.*, trail.security.*,
006                  java.security.Principal"%>
007 
008 <%!
009   private Calculator cal = null;
010   private NumberFormat nf = null;
011 
012   public void jspInit () {
013     try {
014       InitialContext ctx = new InitialContext();
015       cal = (Calculatorctx.lookup(
016                   "EJB3Trail/SecureCalculator/local");
017     catch (Exception e) {
018       e.printStackTrace ();
019     }
020 
021     nf = NumberFormat.getInstance();
022     nf.setMaximumFractionDigits(2);
023   }
024 %>
025 
026 <html>
027 
028 <%
029     String result = "Not Valid";
030     if ("Calculate".equals(request.getParameter("action"))) {
031         double res = -1;
032         res = cal.calculate (Integer.parseInt(request.getParameter("fund")),
033                              Integer.parseInt(request.getParameter("investor")),
034                              Double.parseDouble(request.getParameter("saving")));
035         if (res != -1) {
036             result = nf.format(res);
037         }
038     else if ("Logout".equals(request.getParameter("action"))) {
039       ((HttpSessionrequest.getSession()).invalidate ();
040       SecurityAssociation.clear ();
041 %>
042 <head><meta http-equiv="REFRESH" content="0; URL=calculator.jsp"></head>
043 <%
044       return;
045     }
046 %>
047 
048 <body>
049 
050 <p><form action="calculator.jsp" method="POST">
051 現在のユーザは <b><%=((PrincipalSecurityAssociation.getPrincipal()).getName()%></b> です
052   <input type="hidden" name="action" value="Logout"><br/>
053   <input type="submit" value="ユーザを変更する">
054 </form></p>
055 
056 <p>投資計算プログラム<br/>
057 <form action="calculator.jsp" method="POST">
058   投資会社:
059   <select name="fund">
060 <%
061   Collection funds = cal.getFunds ();
062   for (Iterator iter = funds.iterator(); iter.hasNext();) {
063     Fund fund = (Funditer.next();
064 %>
065     <option value="<%=fund.getId()%>"><%=fund.getName()%></option>
066 <%
067   }
068 %>
069   </select>
070   と個人投資家:
071   <select name="investor">
072 <%
073   Collection investors = cal.getInvestors ();
074   for (Iterator iter = investors.iterator(); iter.hasNext();) {
075     Investor investor = (Investoriter.next();
076 %>
077     <option value="<%=investor.getId()%>"><%=investor.getName()%></option>
078 <%
079   }
080 %>
081   </select> を選択する<br/>
082   月掛金額 = <input type="text" name="saving" value="100">
083   <input type="hidden" name="action" value="Calculate">
084   <input type="submit" value="計算">
085   <INPUT type="button" value="閉じる" onClick="window.close()">
086 </form><br/>
087 合計投資額は <%=result%> です<br/>
088 <br/>
089 データベース内の過去の計算記録<br/>
090 <table>
091 <tr>
092 <td>タイムスタンプ</td>
093 <td>投資会社</td>
094 <td>個人投資家</td>
095 <td>月掛金額</td>
096 <td><b>合計投資額</b></td>
097 </tr>
098 
099 <%
100     Collection records = cal.getRecords ();
101     for (Iterator iter = records.iterator(); iter.hasNext();) {
102         TimedRecord record = (TimedRecorditer.next();
103 %>
104 
105 <tr>
106 <td><%=record.getTs()%></td>
107 <td><%=record.getFund().getName()%></td>
108 <td><%=record.getInvestor().getName()%></td>
109 <td><%=nf.format(record.getSaving())%></td>
110 <td><%=nf.format(record.getResult())%></td>
111 </tr>
112 
113 <%
114     }
115 %>
116 </table>
117 
118 </p>
119 
120 </body></html>