tomcat3.1とJServで、JSPでHPを作っている者です。
JSPファイルを更新すると、次にブラウザに表示するときにコンパイルされますが、たとえばあるサーバに多くのJSPファイルを運んでいって、すべてかならずコンパイルしてほしい時などに
tomcat/work/*.class
をすべて消去する、という方法で正しいかどうかがわかりません。
どなたか実際にこの方法を採っている方などおりましたらアドバイスをいただければと思います。

A 回答 (1件)

tomcat, というか大抵の servlet engine は


ファイルの日付をチェックしているはずですので、
特にそういったことを意識しなくても安全にコンパイルされます。
(それがパフォーマンス上の問題になることもあるわけで、
WebSphere などは明示的に再コンパイルを防止できます)

もちろん *.class を消す方法でも問題ないでしょう。
(サーバの稼働中にそれをやるのは微妙に危険かもしれませんが。)
    • good
    • 0
この回答へのお礼

御回答、ありがとうございます。
例えば、別のサーバにファイルをコピーしたりしていると、タイマーが微妙に違うそれぞれのコンピュータで編集したりコンパイルしたりするので、たまに未来ファイルがきたりすることもあるかと思います。その際、あくまでもファイルの日付だけを根拠にコンパイルされるのであれば、やはり不安な気もします。
とはいえ、確かに稼動中に*.classを消すのももっと怖いので、それはやめとこうと思います。
アドバイスありがとうございました。

お礼日時:2001/04/24 18:11

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

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

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

QEclipse開発時workディレクトリ内自動削除

EclipseでTomcatプラグインを利用し、JavaのWEBアプリケーションを作成しています。
Eclipseの各WEBアプリケーション中のworkディレクトリ内を、
Tomcat起動時等に自動的に削除する方法はありますでしょうか?

Aベストアンサー

ServletContextListenerを使って起動を検知した時に
動くクラスを自作してFileUtils.deleteDirectoryなどで
ディレクトリ内を削除してはどうでしょうか。

参考URL:http://www.techscore.com/tech/Java/JavaEE/Servlet/7/

Qサーブレット/JSPでブラウザのキャッシュを破棄したい!!

現在、J2EEを使用したWebアプリケーションを運用しています。
そのシステムで、ブラウザのキャッシュが残っているために不具合が起きて困っています。
ブラウザのキャッシュを破棄すれば解決することが分かっていますが、お客様に毎回キャッシュを破棄させるわけにもいきません。
なので、サーブレットかJSP(なるべくサーブレット)で自動的にブラウザのキャッシュを破棄したいのです。

ブラウザ:IE6
Java:JDK1.4

どなたか、ご存知ありませんか??
ご存知の方、よろしくお願いします。

Aベストアンサー

意味を履き違えていました。すいません。

> これはキャッシュを残らないようにするものではありませんか?

その通りなのですが、"cache"が無くても"history"があれば「戻る」ボタン使えますよ?
(当方、IE6/FireFox2)


以下、蛇足。

▼キャッシュの削除について
サーバサイドで動くプログラムからクライアントサイドのデータは操作できず、
キャッシュ時に有効/無効設定。
有効時はさらにいつまで有効とするのかの設定ができるだけで、
既にキャッシュされてしまったデータはどうしようもありません。
(つまり、サーバサイドプログラムの時点でアウト)

▼キャッシュとリクエストについて
キャッシュを残さない設定にした場合、
残らないのは出力するコンテンツ(サーブレット/JSPによって出力されるHTMLデータ)のみで
そこから呼ばれる画像なんかは、アドレスの動的生成やレスポンスヘッダの設定を
弄っていない限りはキャッシュされています。
(通信が発生するのは、サーブレット/JSP/HTML等のページ部分のみ)

ですので「戻る」などでキャッシュを使われた場合は、ページに対してリクエストが飛んできません。

サーバサイドで、「キャッシュが残っていたら~をする」といった処理そのものがありえないと思います。
(リクエストが飛んでくるのはキャッシュが無くなったか有効期限が切れたと考えられるから)

デバッガでブレイクポイントを設定するか、イーサリアル等で調査すれば分かります。

▼ナビゲートボタンについて
「戻る」「進む」などはブラウザが自身の"history"を見ているに過ぎず、
"cache"有無に関係なく"history"があるなら実行可能です。
キャッシュコンテンツがあればそれを使い、無ければリクエストを出します。
このあたりは実際試してみて問題があるかどうか調べてください。
(普通は"cookie"を無効にでもされない限り、ログイン等で行ったセッション維持は可能)

▼対策
どーしても破棄したいのであれば、Windows限定ですが
キャッシュを削除するクライアントアプリを作り、ユーザPCにインストールし、
ログインページでActiveXを用いてサーブレットからアプリを起動するといったぐらいでしょうか…。


お力になれず申し訳ないです。
失礼します。

意味を履き違えていました。すいません。

> これはキャッシュを残らないようにするものではありませんか?

その通りなのですが、"cache"が無くても"history"があれば「戻る」ボタン使えますよ?
(当方、IE6/FireFox2)


以下、蛇足。

▼キャッシュの削除について
サーバサイドで動くプログラムからクライアントサイドのデータは操作できず、
キャッシュ時に有効/無効設定。
有効時はさらにいつまで有効とするのかの設定ができるだけで、
既にキャッシュされてしまったデータはどうしようもあり...続きを読む

QSQL実行結果の出力を見やすくしたい

Oracle 10gを使用して勉強をしています。
SQL実行結果の出力が見にくくて困っています。
以下、(1)は自分が実行したSQL文ですが、(2)のように見やすく出力したいです。

どのようにすればよいのでしょうか?
また参考となるWEB URLがある場合、頂けたら嬉です。

(1)自分が実行したSQL文
SQL> select
2 sid,serial#,username,osuser,program,machine,terminal
3 from v$session
4 where type = 'USER';

SID SERIAL# USERNAME
---------- ---------- ------------------------------
OSUSER PROGRAM
------------------------------ ------------------------------------------------
MACHINE
----------------------------------------------------------------
TERMINAL
------------------------------
543 39 SYS
oracleuser sqlplus@HOGE-net (TNS V1-V3)
HOGE-net
pts/1


SID SERIAL# USERNAME
---------- ---------- ------------------------------
OSUSER PROGRAM
------------------------------ ------------------------------------------------
MACHINE
----------------------------------------------------------------
TERMINAL
------------------------------
544 5 SYS
oracleuser sqlplus@HOGE-net (TNS V1-V3)
HOGE-net
pts/0


(2)こんな感じで出力させたいです。
select
sid,serial#,username,osuser,program,machine,terminal
from v$session
where type = 'USER';

SID SERIAL# USERNAME OSUSER PROGRAM  MACHINE   TERMINAL
---- ------- --------- ------ ---------- ---------  --------
139     2      TEST Owner sqlplus.exe   HOGE_XP HOGE_XP
144     20    SYSTEM      ORACLE.EXE HOGE_XP  HOGE_XP

Oracle 10gを使用して勉強をしています。
SQL実行結果の出力が見にくくて困っています。
以下、(1)は自分が実行したSQL文ですが、(2)のように見やすく出力したいです。

どのようにすればよいのでしょうか?
また参考となるWEB URLがある場合、頂けたら嬉です。

(1)自分が実行したSQL文
SQL> select
2 sid,serial#,username,osuser,program,machine,terminal
3 from v$session
4 where type = 'USER';

SID SERIAL# USERNAME
---------- ---------- ---------------------------...続きを読む

Aベストアンサー

set pages 10000 lines 10000 trims on
col username for a30
col osuser for a30
col program for a30
col machine for a30
col terminal for a30

select
sid,serial#,username,osuser,program,machine,terminal
from v$session
where type = 'USER';

こんな感じでどうですか?
ちなみに、a30は30文字分の幅という意味です。
number 型のデータの場合には指定方法がかわりますが、
number 型はそのままでも表示が乱れることはあまりないので、
それほど気にしなくてもよいでしょう。

Q開発初心者です。eclipseでJSPファイルの更新結果が画面に反映さ

開発初心者です。eclipseでJSPファイルの更新結果が画面に反映されません。

eclipseを起動して初めの一回はJSPファイルが作成されたとおりに画面に表示されるのですが、コードを書き変えて実行すると更新結果が反映されず更新前と同じ画面で表示されてしまいます。

eclipseを再起動させてコードを書きかえれば更新できるようですが、やはり更新できるのはeclipseを起動させて初めの一回でそのあとはコードを書き変えて実行しても結果が固定されてしまいます。


とくにエラーも表示されないので原因がわからないのですが更新が反映されないのはどのような原因が考えられるでしょうか?

ご教授よろしくお願いします。

Aベストアンサー

案1
プロジェクトのリフレッシュ(F5)→ビルド→workフォルダの中身を全部削除→APサーバ(tomcat等)の再起動

案2
プロジェクトのクリーン→ビルド→workフォルダの中身を全部削除→APサーバ(tomcat等)の再起動

何か勝手にworkフォルダに溜まっていき、それが悪さをしてるようなので、jspファイルを変更しても画面がかわらないならworkフォルダの中身を全部消しちゃいましょう


人気Q&Aランキング