<%--===========================================================================
  << jsp162.jsp >>

    JSP(6):応用(名簿登録)

   名簿はファイルに保存する。
   ファイルは、絶対パス名(区切り記号は、\ではなく、/を使う)で指定する。

 ●起動法
  (1)JSPファイル(jsp162.jsp)を作成し、
     %CATALINA_HOME%\webapps\SV\jsp162.jsp
    に保存する。
  (2)HTMLファイル(hpj162.htm)を作成し、
     %CATALINA_HOME%\webapps\SV\hpj162.htm
    に保存する。
  (3)記録用ファイル(jsp162.dat)を作成し、
     c:\temp\jsp162.dat
    に保存する。
    (4)URL(http://localhost:8080/SV/hpj162.htm)を指定する。
============================================================================--%>

<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>

<html>
<head><title>JSP</title></head>
<body>

<%
  request.setCharacterEncoding("JISAutoDetect");           
  ArrayList a = new ArrayList();                           

  if( "登録".equals(request.getParameter("f3")) ) {

    synchronized(this) {

      try {                                                    
        // 入力ストリームの作成。
        String fname ="c:/temp/jsp162.dat";  
        if( new File(fname).exists() ) {
          FileReader fr = new FileReader(fname);         
          BufferedReader br = new BufferedReader(fr);            
          // 読込み。                                              
          String line;                                           
          while( (line = br.readLine()) != null ) { a.add(line); }
          br.close();
        }                                            
 
        // 出力ストリームの作成。
        FileWriter w = new FileWriter(fname);
        PrintWriter pw = new PrintWriter(w);
        a.add(request.getParameter("f1")); 
        a.add(request.getParameter("f2")); 
        for( int i=0; i<a.size(); i++ ) {
          pw.println(a.get(i));
        }
        pw.close();
      } catch( Exception e ) { }
    }

    // 登録記録の表示。
    out.println("登録者数:" + a.size()/2 + "<br>"); 
    out.println("<hr>");
    int num = 0;
    for( int i=0; i<a.size(); i=i+2 ) {                                  
      num++;
      out.println("登録番号[" + num + "]<br>");
      out.println("名前:" + a.get(i) + "<br>");    
      out.println("学生番号:" + a.get(i+1) + "<br>");
      out.println("<hr>");
    }        
  }
%>

</body>
</html>
HTMLファイル(hpj162.htm)
<!-- << hpj162.htm >> -->
<html>
<head><title>JSP</title></head>
<body>
名簿:
<form action=http://localhost:8080/SV/jsp162.jsp method=POST>
  名前:<input type=text size=20 name=f1><br>
  学生番号:<input type=text size=20 name=f2><br>
  <input type=submit name=f3 value=登録>
</form>
</body>
</html>
実行結果

URL(http://localhost:8080/SV/hpj162.htm)を指定後




登録をクリック後


URL(http://localhost:8080/SV/hpj162.htm)を指定後


登録をクリック後


Webブラウザを閉じた後、再接続
URL(http://localhost:8080/SV/hpj162.htm)を指定後


登録をクリック後


コマンドプロンプトを開き、ファイル(c:\temp\jsp162.dat)を確認