Tomcat -JSPでカウンターを作ってみる(Mac)
とりあえずHelloWorldしてみる
前回作ったtest/
ディレクトリの中に
jspSample/
というディレクトリを作りましょう
webapps/ ├ test/ ├ jspSample/ ┗ WEB-INF/ ┗ classes/
jspSample/
の中に.jsp
ファイルを作成していきます。
まずはHelloWorldですね。
jspSample/
ディレクトリの中にhello.jsp
を作成し、
以下の内容を追記します。
hello.jsp
<%@ page contentType="text/html; charset=UTF-8" %> <html> <head> <title>Hello World!</title> </head> <body> <% out.print("Hello World!"); %> </body> </html>
htmlの中にJavaのコードを埋め込み、
実行できるようになったものがjspみたいですね。
webapps/ ├ test/ ├ jspSample/ │ ┗ hello.jsp ┗ WEB-INF/ ┗ classes/
.jsp
ファイルは、コンパイルしなくていいので
上記のような構成になっているのを確認したら、URLを開いて確認しましょう。
http://localhost:8080/test/jspSample/hello.jsp
無事HelloWorldが確認できたでしょうか?
サーブレットに比べて、かなり簡単にできたかと思いますが、
jsp
とサーブレット
、どちらが優れているということはないので、
状況によって使い分けていけると良いですね!
今回はとりあえずjspのみで作っていこうと思います。
jsp
とサーブレット
の違いについて、
すごくわかりやすく解説してくださっているサイト様です。
アクセスカウンター
次はアクセスカウンターを作ってみましょう。
その前にdata/
ディレクトリをtest/
ディレクトリに作ります。
webapps/ ├ test/ ├ data/ ├ jspSample/ ┗ WEB-INF/ ┗ classes/
ここはカウントの値を保存するファイルを格納する場所として使います。
次にjspSample/
ディレクトリの中にcounter.jsp
を作成し、
以下の内容を追記しましょう。
counter.jsp
<%@ page contentType="text/html; charset=UTF-8" %> <%@ page import="java.io.*" %> <html> <head><title>counter</title></head> <body> <%! int count; %> <% request.setCharacterEncoding("UTF-8"); synchronized(this) { try { String fname ="/usr/local/Cellar/tomcat/8.5.11/libexec/webapps/test/data/counter.txt"; File file = new File(fname); if( file.exists() ) { BufferedReader br = new BufferedReader(new FileReader(file)); String line = br.readLine(); count = Integer.parseInt(line); count++; br.close(); } else count = 1; PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file))); pw.println(count); pw.close(); } catch( Exception e ) { } } %> count :<%= count %><br> </body> </html>
ファイルの内容としては、
ファイルがあればその値を読み取り ++1して上書き、
なければ新しくファイルを作り “1” を書き込むという シンプルなものだと思います。
保存出来たら確認してみましょう!
http://localhost:8080/test/jspSample/counter.jsp
更新をするたびに値が増えていけば、きちんと動作しています。
ここまで読んでくださってありがとうございます!
お疲れ様でした。