- - PR -
セッションが切れないアプレットはできるでしょうか?
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-10-21 21:46
アプレットでモニタ画面を作成して、サーバ側のDB情報の変化を常に表示したいのですが、
通信がない状態が続くとセッションが切れるようです。 トリガはアプレット側ではなくサーブレット側という条件です。 またセッションタイムアウトの時間は変更しない条件です。 どなたか知恵をいただきたく。よろしくお願いします。 | ||||
|
投稿日時: 2003-10-21 22:08
> トリガはアプレット側ではなくサーブレット側という条件です。
ブラウザが閉じたり、ブックマークから他のページに移動したり した場合の処理は考えているのでしょうか? 「やってはいけない事」の典型のような気がするのですが。。。 それはそうと、セッション(Applet-Servlet間のTCPセッションでなく、HTTP セッションの事ですよね?)がタイムアウトしないためには、定期的にブラウザ からリクエストを発行させればよいです。 アプレットのあるページをフレームにして、一方を見えないフレーム(width 0%) にしといて、そこで、 <meta http-equiv="Refresh" content="1200"> とか書けば、定期的にリクエストを発行するので、セッションは切れません。 | ||||
|
投稿日時: 2003-10-21 23:54
t-wataさん回答ありがとうございます。
セッションについては、よく理解していませんでした。 Applet-Servlet間のTCPセッションは初めて聞きました。 どこの設定値で管理しているのでしょうか? 今回は、トラヒックを多くせずに、 サーバ側のDB情報の変化をどのようにクライアントに 伝えるかをポイントに考えています。 そのためにサーブレットがトリガではどうかと考えました。 他に良い方法があればと考えています。 やはり、クライアントから定期的に 問い合せる方法が最適なのでしょうか? | ||||
|
投稿日時: 2003-10-22 00:03
session.setMaxInactiveInterval(-1); でセッションタイムアウトを無効にできます。 | ||||
|
投稿日時: 2003-10-22 07:57
サーブレットコンテナの設定でもできるかもしれませんね。
| ||||
|
投稿日時: 2003-10-22 07:57
そうすると、Webアプリケーション全体に反映されてしまいますね。 失礼しました。 | ||||
|
投稿日時: 2003-10-22 11:49
> Applet-Servlet間のTCPセッションは初めて聞きました。
> どこの設定値で管理しているのでしょうか? 自分で作って、自分で管理するのですが。 HTTPは、クライアント(ブラウザ)がリクエストを発行し、サーバ はそれに答える、というモデルなので、HTTPには、サーバから一方的 にクライアントへイベントを通知する手段を有していません。 Servletにトリガを置くには、自分でそのような仕組みを作り込むしか ないです。 そのために、AppletでServerSocketを作成して、Servletが、Applet のServerSocketに接続する方法があり、その接続がTCPセッションです。 ただ、これは基本的には、「できるけどやってはいけない事」です。 (開発も運用も苦労することになります。) HTTPを使う場合は、サーバ側から、クライアント(ブラウザ)側に 一方的に通知することは諦めるべきです。 | ||||
|
投稿日時: 2003-10-25 19:18
最終的には、
クライアントから定期的にサーバに対して問い合せを行う方法にしました。 回答ありがとうございました。 | ||||
1
