memo.xight.org

/ / memo.xight.org

2003-01-12

Java Appletによるアクセスカウンタ

- Summary
  Java Appletでは,サーバのファイルシステムにアクセスすることができないため,
  以下の方法でJavaAppletアクセスカウンタを実現する.
- 方法 1. サーバ・クライアント通信による方法
  Java Appletでプロセス間通信を行う場合,そのAppletが置かれているサーバとだけ通信することができる.

<applet code="Counter.class" width="132" height="24">
	<param name="ndigits" value="6">
</applet>

  ndigits にはカウンタの桁数を指定する.
- 注意
  カウンタサーバを立ち上げる必要があるため,shellを開放していないサイトでは実現できない.

- 方法 2. SSI と併用する方法
  SSI (Server Side Include) は NCSA 系の HTTPD で採用されている機能である.
<applet code="SSICounter.class" width="132" height="24">
	<param name="count" value="<!-- #exec cmd="counter.pl" -->">
	<param name="ndigits" value="6">
</applet>

  count には表示すべきカウント値を指定する.
  counter.pl はアクセス数を 1
  インクリメントして標準出力に表示するプログラム
- 注意
  CERN系のhttpdを採用しているサイトではこの方法は実現できない.

- 方法 3. CGI と併用する方法
  ほぼすべてのサイトで実現できる方法
  以下のタグを <img> タグに埋め込んで空のイメージを返す.

<img src="/cgi-bin/cserver.pl?incr&link=index.html" />


  incr によってCGIがアクセス数をカウントアップすることを指示.
  link はカウントアップするページのURIを指定
  JavaApplet では
URI url = new URI(protocol, host, "/cgi-bin/cserver.pl?link=" + file);

  によって,CGI にアクセス.
  ここでは incr を指定しないことで,CGIにアクセス数をカウントアップすること無しにその値を返すことを指示
  アクセス数が増えるたびに表示をアップデートするリアルタイムカウンタを実現することが可能

- 追記
  別にアクセスカウンタが必要なわけじゃなくて,Applet との通信方法が知りたかっただけ.

- Reference
  まるはち薬局のWWW技術情報 - Java
  Appletによるアクセスカウンタ
  http://www.orange.ne.jp/~yabu/java/counter/java.html
カテゴリ: [JavaApplet]
2003-01 /

Color Reference

ChangeLogを検索
携帯電話からアクセス!

カテゴリ

最近の話題

リンク

過去ログ

Google

QR Code

Since
2002-11-28
Update
2008-12-02 10:52
Copyright © 2005 xight.org All Rights Reserved.