こんにちは

CGIが使えない環境で、なんとかアクセスログ付のカウンタを作りたいのですが、JAVAのアプレットでできないでしょうか。
もし、おわかりの方いらっしゃいましたら、お助けください。

仕様としましてはw、WEBページにはカウンタは表示せず
ファイルに書き出して、その中にログをためていきたいのですが。
ログにためるないようですが、
1.どのURLから来たか。
2.何件のアクセス数です。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

サーブレットも基本的にはCGIと同じです。

サーバー側が持つ機能です。
これもクライアント側ではどうすることも出来ません。
    • good
    • 0

CGIが使えないのであれば無理じゃないのかな。


アクセスのカウントはHTTPのサーバー側で行なうのもなので、クライアント側のアプレットに何をしても無理じゃないのかな。

いちど、HTTPの仕組みを調べて見てはどうでしょうか
    • good
    • 0
この回答へのお礼

ありがとうございます。

やっぱり無理ですね。
ところで、JAVAのサーブレットに関心がありますが、
サーバー側で環境を整えないと使えないですよね。

お礼日時:2001/07/27 21:13

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qアプレットを実行すると、×が表示され、Javaアプレットの読み込みに失敗しました。のメッセージが表示されます。

Java JDK5をインストールしました。

C:\Program Files\Javaに
jdk1.5.0_06
jre1.5.0_06
がインストールされています。

コンパイルは、PATHにC:\Program Files\Java\jdk1.5.0_06\binを追加すれば、できるようになりました。


Javaアプレットの読み込みに失敗しました。のメッセージが表示されます。


// 図形の表示

import java.applet.*;
import java.awt.*;

public class Test_0002 extends Applet{
public void paint(Graphics g){
g.fillOval(0, 0, 200, 100);
}
}

Aベストアンサー

HTMLのソースとclassファイル(またはjarファイル)の配置はどうなっていますか?
読み込みに失敗したのなら、classファイルが読み込めていない可能性が高いです。

QJavaアプレットによる、ファイルへのランダムアクセス方法

Java初心者です。Javaアプレットによる、ファイルへのランダムアクセスのコーディング方法について教えて下さい。

現在スタンドアロンで以下の様なコードでランダムアクセスを実現しました。
 fr = new RandomAccessFile(url,"r");
  ・
  ・
 //ファイルポインタの格納
 w_pointer = fr.getFilePointer();
 w_data = new String(fr.readLine().getBytes("8859_1"));
 w_address[i] = w_pointer;

 //格納したアドレスからrec_num番目のレコードを取得する
 fr.seek(w_address[rec_num-1]);
 rec_data = new String(fr.readLine().getBytes("8859_1"));

しかし、Webサーバで公開したい場合のファイルへのランダムアクセス方法がわかりません。(サーバ上のファイルへのアクセス)
webで調べたところ、シーケンシャルアクセスの場合には、ストリームによるアクセスで可能とのことですがランダムアクセスには使えないと書いてありました。
どなたか解決方法をご存じの方、宜しくお願い致します。

Java初心者です。Javaアプレットによる、ファイルへのランダムアクセスのコーディング方法について教えて下さい。

現在スタンドアロンで以下の様なコードでランダムアクセスを実現しました。
 fr = new RandomAccessFile(url,"r");
  ・
  ・
 //ファイルポインタの格納
 w_pointer = fr.getFilePointer();
 w_data = new String(fr.readLine().getBytes("8859_1"));
 w_address[i] = w_pointer;

 //格納したアドレスからrec_num番目のレコードを取得する
 fr.seek(w_address[rec_num-1]...続きを読む

Aベストアンサー

アプレット <--> サーブレット <--> ファイル

とするわけではないのですか?
そうしないとファイル内容の取得自体がHTTP経由になりますから、
ランダムアクセスは不可能です。

上のような構成にすれば、
サーブレットからファイルにランダムアクセスできると思います。

Q内部仕様、外部仕様

プログラミング初心者です。来週までにレポートを出さなければならないのですが外部仕様と、内部仕様は具体的にどのように書けばよいのでしょうか?

Aベストアンサー

外部仕様 (機能仕様書 etc)
・プログラムの簡易説明、マニュアルみたいなもの
・プログラミングの知識が無い人にもわかる内容
・UI(ユーザーインターフェース)主体の仕様
・画面上の項目の説明、操作方法などをまとめる
 (画像とか載せておくと良いかも)

内部仕様 (詳細仕様書、設計書 etc)
・プログラムの詳細設計書
・開発者向けの内容
・開発環境(条件)、クラス仕様、構成、アルゴリズム等の説明
・プログラムの内部動作について詳しくまとめる
 (これとソースコードがあればプログラムの中身が全部わかる、というくらいに)
・必要に応じてコンポーネント図やフローチャート等も書く


どちらの場合も、図や箇条書きを使ってわかりやすく説明しましょう。
1つの文が長くて読みにくいものはNGです。

QTomcatでアクセスログを出力したいのですが。

こんにちは、こちらにはいつもお世話になっております。
さて、今まで作っていたwebコンテンツがようやく完成したのでTomcatにてアクセスログを取得できるようにして公開しようと思いました。
『UNIXな生活』様(http://park15.wakwak.com/~unixlife/java/tomcat5-serverxml.html)
を参考にserver.xmlのValve部分を探し出しコメントアウトを解除し、Tomcatを再起動しました。
しかし何度かコンテンツにアクセスを行っても出力されません。
コメントアウトを解除しただけではアクセスログが出力されないのでしょうか?
デフォルトなのでTomcat5.0\logs内に出来るはずだとは思うのですが…。
試しにサーバを再起動してみてもダメでした。
知恵をお貸しください_(._.)_

Aベストアンサー

ao108 さん、おはようございます。

使用している Tomcat のバージョンと、Tomcat を実行している OS は何でしょうか?
下記の説明は、以下の環境を前提に説明しております。

 Tomcat v5.5.17
 OS : Windows XP(SP2)


さて、アクセスログについてですが、下記の通り設定ファイルを変更してできると思います。

1. Tomcat をインストールしたディレクトリ内にある conf  ディレクトリを開きます。

2. server.xml のバックアップを取っておきます。

3. server.xml をテキストエディタなどで開き、オリジナルの 場合は、338行目と342 行目のコメントを解除します。


---------------------------------------------------------
 変更前
---------------------------------------------------------
    :
    :
338 : <!--
339 :  <Valve className="org.apache.catalina.valves.AccessLogValve"
340 :   directory="logs" prefix="localhost_access_log." suffix=".txt"
341 :   pattern="common" resolveHosts="false"/>
342 : -->
    :
    :


---------------------------------------------------------
 変更後
---------------------------------------------------------
    :
    :
338 : <!-- 2006/08/06 -->    ← コメントを解除
339 :  <Valve className="org.apache.catalina.valves.AccessLogValve"
340 :   directory="logs" prefix="localhost_access_log." suffix=".txt"
341 :   pattern="common" resolveHosts="false"/>
342 : <!-- 2006/08/06 -->    ← コメントを解除
    :
    :


4. server.xml を保存します。

5. Tomcat を再起動します。

6. Webブラウザから、以下の URL にアクセスしてみます。

  http://localhost:8080/

7. Tomcat をインストールしたディレクトリ内にある logs ディレクトリを開きます。


8. logs ディレクトリにアクセスログファイルが作成されています。
 たとえば、2006/08/06 のアクセスログであれば、以下のファイル名で作成されます。

  localhost_access_log.2006-08-06.txt

 また、ログファイルの内容は以下のようになっています。

---------------------------------------------------------
 localhost_access_log.2006-08-06.txt の内容
---------------------------------------------------------
127.0.0.1 - - [06/Aug/2006:05:52:16 +0900] "GET / HTTP/1.1" 200 8132
127.0.0.1 - - [06/Aug/2006:05:52:16 +0900] "GET /tomcat-power.gif HTTP/1.1" 200 2324
127.0.0.1 - - [06/Aug/2006:05:52:16 +0900] "GET /tomcat.gif HTTP/1.1" 200 1934
127.0.0.1 - - [06/Aug/2006:05:52:16 +0900] "GET /asf-logo-wide.gif HTTP/1.1" 200 5866
127.0.0.1 - - [06/Aug/2006:05:52:16 +0900] "GET /favicon.ico HTTP/1.1" 200 21630



以上です。

ao108 さん、おはようございます。

使用している Tomcat のバージョンと、Tomcat を実行している OS は何でしょうか?
下記の説明は、以下の環境を前提に説明しております。

 Tomcat v5.5.17
 OS : Windows XP(SP2)


さて、アクセスログについてですが、下記の通り設定ファイルを変更してできると思います。

1. Tomcat をインストールしたディレクトリ内にある conf  ディレクトリを開きます。

2. server.xml のバックアップを取っておきます。

3. server.xml をテキストエディタなどで開...続きを読む

QJavaアプリでWWWサーバにアクセス。ログに記録されるUserAgentの名前を変更できないでしょうか。

JavaでWWWサーバ上のページを取得するプログラムを作っています。
しかし、WWWサーバのログを確認すると、UserAgentが「Java」となってしまいます。(当然といえば当然ですが。)

このサーバに渡すUserAgentの情報を変更することはできないでしょうか?サーバには「Java」ではなく自作アプリの名称を渡したいのです。何か方法があればお教えください。よろしくお願いします。

// 現在のコード例
import java.net.*;
import java.io.*;

public class test {
public static void main(String[] args){
try{
URL a = new URL("http://127.0.0.1/index.htm");
BufferedReader b = new BufferedReader(new InputStreamReader(a.openStream()));

// 以下略
}
}

Aベストアンサー

未経験・未検証ですが、
@ITにあった、java.net.URLConnectionを使った以下のサンプルは参考になりますか?
http://www.atmarkit.co.jp/fjava/javatips/069java006.html


このカテゴリの人気Q&Aランキング

おすすめ情報