TEXT FILE を入力

1234567890
abcdefg  HIJKLMN
あいうえお  カキクケコ
漢字のテスト

TEXT FILE を入力してホームページに表示します。

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

プログラムの作成

  1. サーバーサイドでなければ出来ないことに、ファイルの入出力があります。
    クライアントサイドでは、セキュリティの保護からファイルのアクセスが禁止されています。
    また複数のプレイヤーが交信しながらゲームを進めるとなると、サーバーサイドに限ります。
    多くのプレイヤーが参加するネットワークゲームでは、データベースが使われるのですが、 今回は簡単な TEXT FILE を入力してホームページに表示してみましょう。
    ファイルの入出力は、普通の Java アプリと同じように行うことが出来ます。
    詳細は「プログラム入門(Java)/Console Mode Program/ファイル入出力」を参照して下さい。
  2. サーブレットのディクトリ構成です。
    +がフォルダーで、・がプログラマが格納するファイルで、*がコンパイラなどで作成するファイルです。
    +C:\tomcat\webapps\
        +piyo
            +WEB-INF
                +classes
                    ・TextGET.java      //TEXT FILE を入力する Servlets
                    *TextGET.class
                ・web.xml               //Servlets のマッピング
    
  3. TEXT FILE を入力してホームページに表示する TestGET.java です。
    "piyo\WEB-INF\classes\ のフォルダーに格納して下さい。
    //★ TEXT FILE("c:\\tmp\\test.txt") を入力    前田 稔
    //javac -classpath C:\tomcat\lib\servlet-api.jar TextGET.java
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    public class TextGET extends HttpServlet
    {   public void doGet(HttpServletRequest req, HttpServletResponse res)
            throws ServletException, IOException
        {   res.setContentType("text/html; charset=Shift_JIS");
            PrintWriter out = res.getWriter();
    
            out.println("<HTML><BODY>");
            out.println("<h2>Text Get Test Ver-1<h2>");
    
            File file = new File("c:\\tmp\\test.txt");
            if (file.exists()==false)
            {   out.println("test.txt が見つかりません" + "<br>");  }
            else
            {   if (file.isFile()==false || file.canRead()==false)
                {   out.println("test.txt が入力出来ません" + "<br>");  }
                else
                {   BufferedReader buf = new BufferedReader(new FileReader(file));
                    String str;
                    while((str=buf.readLine()) != null)
                    {   out.println(str + "<br>");  }
                    buf.close();
                }
            }
    
            out.println("</BODY></HTML>");
        }
    }
    
  4. TextGET.java をコンパイルして TextGET.class を作成します。
    このとき servlet-api.jar を classpath で指定しなければなりません。
    詳細は JSP Error Guide を参照して下さい。
  5. "C:\tomcat\webapps\piyo\WEB-INF\web.xml に TextGET の定義を追加します。
    HelloWorld では hello で登録しましたが、同じ名前の方が解り易いでしょうか。
    web.xml の説明は Servlets HelloWorld!! を参照して下さい。
        ・・・
    <web-app>
    <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>HelloWorld</servlet-class>
    </servlet>
    <servlet>
    <servlet-name>TextGET</servlet-name>
    <servlet-class>TextGET</servlet-class>
    </servlet>
        ・・・
    <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>TextGET</servlet-name>
    <url-pattern>/TextGET</url-pattern>
    </servlet-mapping>
    
    </web-app>
    
  6. プログラムで入力する TEXT FILE を C:\TMP\test.txt の名前で作成して下さい。
    PHP ではカレントディレクトリからファイルを入力したのですが、サーブレットでは様子が違います。
    "test.txt" として、プログラムと同じフォルダーに格納したのですが、読めませんでした。
    今回使用する WWWサーバーは自分のマシンなので、Cドライブに自由にアクセス出来ますが、本来はセキュリティ保護されています。
    その場合はデータベースや Serializable など、別の対策が必要かも知れません。
    1234567890
    abcdefg  HIJKLMN
    あいうえお  カキクケコ
    漢字のテスト
    
  7. サーブレットを実行します。
    apache-tomcat を立ち上げて、WWW ブラウザに URL を張り付けて下さい。
    http://localhost:8080/piyo/TextGET
    test.txt から入力した TEXT 文がブラウザに渡されて表示されます。

Java Game Program