Login List を表示する



Login, Logout を管理して、Login しているメンバーを表示します。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. プロジェクトのディクトリ構成です。
    C:\tomcat\webapps\ に beans\ のフォルダーを作成してプロジェクトを格納します。
    +:フォルダー, ・:ファイル, *:生成されるファイルです。
    +beans
        +WEB-INF
            +classes
                +mybean
                    ・listbean.java
                    *listbean.class
            +lib
        ・login.jsp
    
  2. Login したメンバーを管理する listbean.java です。
    listbean.java は幾つかのページで紹介していますが、プロジェクト毎に少し異なるので注意して下さい。
    //★ ArrayList の Beans    前田 稔
    package mybean;
    
    import java.util.*;
    import java.io.Serializable;
    
    public class listbean implements Serializable
    {   private ArrayList  list;
        private String  str;
    
        // Constructor
        public listbean()
        {   list= new ArrayList();
            this.list.add("InitMsg-1");
            this.list.add("InitMsg-2");
            this.list.add("InitMsg-3");
        }
        // Get, Set Method
        public void setStr(String m)    {  this.list.add(m);  }
        public String getStr()  {  return this.str;  }
        public void setList(ArrayList lst)  {  this.list= lst;  }
        public ArrayList getList()  {  return this.list;  }
        // Other Method
        public String getDel()
        {   int i;
            i= list.size();
            if (i<=0)   return null;
            this.str= this.list.get(i-1);
            this.list.remove(i-1);
            return this.str;
        }
    }
    
  3. login.jsp のソースコードです。
    listbean.class を使って、Login, Logout を管理します。
    <%@ page contentType="text/html; charset=Shift_JIS" import="java.util.*" %>
    <jsp:useBean id="arraylist" scope="application" class="mybean.listbean" />
    <jsp:setProperty name="arraylist" property="*"/>
    <%
      String name= request.getParameter("name");
      String mode= request.getParameter("mode");
    
      if (name!=null)   name=new String(name.getBytes("8859_1"),"Shift_JIS");
      if (mode!=null)   mode=new String(mode.getBytes("8859_1"),"Shift_JIS");
      ArrayList<String> list= arraylist.getList();
    %>
    
    <html>
      <body>
        お名前は <%= name%><br>
        モードは <%= mode%> です。<br>
        <h1>Login List を表示</h1>
        <%
            if ("Login".equals(mode))
            {   list.add(name);
                arraylist.setList(list);
            }
            if ("Logout".equals(mode))
            {   int i= list.lastIndexOf(name);
                if (i>=0)   list.remove(i);
                arraylist.setList(list);
            }
        %>
    
        <%
            for(int i=0; i<list.size(); i++)
            {   out.println(list.get(i) + "<br>");  }
        %>
        <h2>名前を入力して選択して下さい</h2>
          <form action="login.jsp">
            <input type="text" name="name" value="guest"><br><br>
            <select name="mode" size="3">
              <option selected>Check</option><br>
              <option>Login</option><br>
              <option>Logout</option><br>
            </select><br><br>
            <input type="submit" value="submit">
          </form>
      </body>
    </html>
    
  4. listbean.java をコンパイルして listbean.class を作成して下さい。
    C:\Users>cd C:\tomcat\webapps\beans\WEB-INF\classes
    C:\tomcat\webapps\beans\WEB-INF\classes>javac myclass\listbean.java
  5. "C:\tomcat\bin\tomcat7w.exe" を選択して、管理者として実行から apache-tomcat を起動します。
    WWW ブラウザを起動して下記の URL を張り付けて下さい。
    http://localhost:8080/beans/login.jsp
  6. 名前をタイプして Login するとリストに追加されます。
    名前をタイプして Logout するとリストから削除されます。
    Check を選ぶと Login しているメンバーが表示されます。

プログラムの説明

  1. listbean.java は ArrayList を使って String を管理する Beans です。
    Constructor では、テスト用に3件の String を登録しています。
    setStr() は ArrayList に String を追加登録するメソッドです。
    getStr() は String str; の値をリターンするメソッドです。
    setList() は ArrayList に値を設定するメソッドです。
    getList() は ArrayList の値をリターンするメソッドです。
    getDel() は最後に追加された String を str にコピーして ArrayList から削除します。
  2. login.jsp では listbean.class を使って Login, Logout を管理します。
    ArrayList で Login しているメンバーを管理するので scope="application" にします。
    scope="page" では、毎回領域がクリアされます。
    <jsp:useBean id="arraylist" scope="application" class="mybean.listbean" />
  3. property="*" で全てのプロパティに値を設定します。
    永続化されているときは、保存した状態が復元されます。
    このとき全てのプロパティに対して setメソッドを定義する必要があるようです?。
    <jsp:setProperty name="arraylist" property="*"/>
  4. login.jsp に渡された name, mode を取得して Shift_JIS に変換します。
    getList() で ArrayList を取得します。
  5. Login, Logout を処理して setList() で listbean を更新します。
    ArrayList に登録されている Login メンバーを表示します。
  6. FORM から name をタイプして Check, Login, Logout を選択します。
    Check を選択すると、現在 Login 中のメンバーを表示するだけです。
    Login を選択すると、メンバーに加えます。
    Logout を選択すると、メンバーから削除します。
    submit のクリックで、次のステージに移ります。
  7. WWW ブラウザから新しいページを開いて、下記の URL を張り付けて下さい。
    http://localhost:8080/beans/login.jsp
    新しいページで開くと Beans が初期状態で生成されます。
    submit をクリックすると、現在 Login 中のメンバーが表示されます。
  8. 複数のページを開いて交互に Check, Login, Logout を操作して下さい。
    Beans を通してお互いに情報の交換が出来ることを確認して下さい。

Java Game Program