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と関連する良く見られている質問

QIEでjsp形式のファイルをダウンロードしようとする

IEでjsp形式のファイルをダウンロードするようになってしまっているのですが、これをダウンロードせずに普通のHTML形式として表示するにはどのようにすればよいでしょうか?

Aベストアンサー

あなたが作ったのではなくどなたかが作ったサイトのお話なのでしょうか。サーバー側でマッピングの設定はきちんとできているんですよね?
例えば参考URLのテストなんかどうでしょう。

参考URL:http://s-hiasa.ddo.jp/sample/

Qservletのコンパイルエラーについて CLASS_PATH Tomcat 5.5.11

Tomcat 5.5.11にてservlets-examplesのサンプルプログラムHelloWorld .javaをコンパイルすると以下のエラーが出ます。
Tomcatは正常に動作していますし、通常のjavaプログラムもコンパイルできます。


HelloWorld.java:3: パッケージ javax.servlet は存在しません。
import javax.servlet.*;
^
HelloWorld.java:4: パッケージ javax.servlet.http は存在しません。
import javax.servlet.http.*;



CLASS_PATH などの設定はいろいろなサイトやここの過去の質問を見たとおりにしましたがなんともなりません。
現在は以下のようになっております。

CLASS_PATH
.;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar

CATALINA_HOME
C:\Program Files\Apache Software Foundation\Tomcat 5.5

PATH
C:\Program Files\Java\jdk1.5.0_04\bin

JAVA_HOME
C:\Program Files\Java\jdk1.5.0_04


もうどうしたらいいのかわかりません。
助言のほうよろしくお願いします。

Tomcat 5.5.11にてservlets-examplesのサンプルプログラムHelloWorld .javaをコンパイルすると以下のエラーが出ます。
Tomcatは正常に動作していますし、通常のjavaプログラムもコンパイルできます。


HelloWorld.java:3: パッケージ javax.servlet は存在しません。
import javax.servlet.*;
^
HelloWorld.java:4: パッケージ javax.servlet.http は存在しません。
import javax.servlet.http.*;



CLASS_PATH などの設定はいろいろなサイトやここの過去の質問を見たとおりにしましたがなんともな...続きを読む

Aベストアンサー

こんちは~

おおよそ2年ぶりにTomcat触りました(趣味でw
最近はservlet.jarじゃなくてservlet-api.jarなんですねぇ。

で、本題なんですが
環境変数名が違うとせいだと思います。

「CLASS_PATH」

ではなく

「CLASSPATH」

です

※「 _ 」がいらない

QJSPページがダウンロードになってしまいます

ローカルマシンでJSPの勉強をしているのですが、
オペラだとうまく処理されて表示されるのに
IEだとダウンロードをしようとしてしまいます。
ブラウザの設定の問題なのかと思いますが…。
何かヒントでも頂けたらと思います。
宜しくお願いします。

Aベストアンサー

 ContentTypeは正しいですか?

参考URL:http://www.atmarkit.co.jp/fjava/rensai2/jspservlet04/jspsevlet04_1.html

QTomcatとJSPの階層関係

質問です。
TomcatとJSPとMySQLを使ってプログラミングしているのですが、
どうにもJSPがうまく動いてくれません。
友人によると、.jspファイルを入れるフォルダが違っている、とのことです。

今の状態は
C:\Program Files\Apache Group\Tomcat4.1
C:\j2sdk1.4.0
で、
作った.jspファイルはどこに置けばよいのでしょうか?

一番最初(?)のTomcatのページ(http://localhost8080/index.jsp
は作動します。

どうか宜しくお願いいたします。

Aベストアンサー

このあたりの設定方法はご自身でよーくマスターしておいてくださいね。
Tomcat4と5で設定の仕方に違いがあるのですが、4ということですので、server.xmlに追加をします。
<Context path="/newproject" docBase="C:\foldercontainedjsp" debug="0" reloadable="true"> </Context>
と言った感じにします。
そうするとクライアントからアクセスする時に
http://localhost:8080/newproject/XX.jsp
でアクセスできます。
ですから、上の設定は、Tomcatに新しくWebアプリケーションを追加し、サーバのディレクトリパスとクライアントからアクセスするときのパスのマッピングをしていると考えてください。
このときサーバ側では
C:\foldercontainedjsp
   ├WEB-INF
   └XXX.jsp
になります。

QJSPでCSVのダウンロード処理

仕事でJavaのWebシステムを組むことになったのですが、そのシステムの中にCSVファイルのダウンロードという機能を入れることになりました。
サーバのOSはLinuxなのですが、クライアントのOSはWindowsです。
CSVファイルは、クライアントにダウンロードして使うものなので、Linuxの文字コード体系がEUCだろうが、とにかく使う側の文字コードにあわせてやれば問題ないと思っています。
Linuxサーバ上で動くJSPで、文字コードをEUC以外にして(Shift-JISで)ダウンロード処理はできますよね?
私は出来るものと思っていたのですが、今回の仕事のメンバーに聞かれて、ちょっと不安になってきました。

Aベストアンサー

できますよ。
Javaの中で正常に処理できる形になっていればUnicodeにはなっているので、
Writerのエンコード指定をShift-JISにしておけば大丈夫です。

ほかに気をつけることは、改行コードです。
BufferedWriter#println()を使うと動作環境の改行コードが使われるので、
大抵の場合Windows環境のCRLFと異なっています。
改行コードは自分でつけた方が無難ですね。

QJSPでclassのimport

教えてください。

JSPのプロジェクトで、自作のクラスを下記のようにimportしています。

import Util;

しかし、次のようなエラーメッセージが表示されてしまい、うまくいきません。

> '.' がありません。
> import Util;
> ^

Util.class というファイルは存在していて、その場所にはCLASSPATHが通っています。
その場所にフォルダをもう一つ作って、その中にUtil.classを移動し、次のように

import test.Util;

などとすると、認識自体はできたらしく次のようなメッセージに変わります。

> test.Util にアクセスできません。
> クラスファイル C:\xxx\classes\WspBean\Util.class は不正です。
> クラスファイル Util に不正なクラスがあります。
> 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
> import WspBean.Util;
> ^

なので、CLASSPATH もとおっていると思うのですが・・
何か原因らしきものや、ほかに調査できる方法などありますでしょうか?
ヒントになるようなことでもいいので、教えていただけると幸いです。
よろしくお願いいたします。

教えてください。

JSPのプロジェクトで、自作のクラスを下記のようにimportしています。

import Util;

しかし、次のようなエラーメッセージが表示されてしまい、うまくいきません。

> '.' がありません。
> import Util;
> ^

Util.class というファイルは存在していて、その場所にはCLASSPATHが通っています。
その場所にフォルダをもう一つ作って、その中にUtil.classを移動し、次のように

import test.Util;

などとすると、認識自体はできたらしく次のようなメッセージに変...続きを読む

Aベストアンサー

おそらく原因は、j2SE1.4 における非互換性が原因ではないでしょうか?

以下 j2se1.4 変更点抜粋 ----------------

コンパイラは、名前のないネームスペースから型をインポートする import 文を拒否するように なりました。以前のバージョンのコンパイラは、こうした import 宣言を、理論的には言語で許可 されていなくても (import 句に現れる型名がスコープ内に存在しないため)、 受け入れていまし た。仕様の中では、import 文の中に単純名を含めることはできないこと、また名前のないネー ムスペースからインポートを行うことはできないことが明示されています。

要約すると、次の構文は有効ではなくなりました。

import SimpleName;


また、名前のないネームスペースからネストしたクラスをインポートする次の文も、有効ではなく なりました。

import ClassInUnnamedNamespace.Nested;


コード内でこうした問題を修正するには、すべてのクラスを、名前のないネームスペースから名 前付きのネームスペースへ移動する必要があります。

参考URL:http://java.sun.com/j2se/1.4/ja/compatibility.html

おそらく原因は、j2SE1.4 における非互換性が原因ではないでしょうか?

以下 j2se1.4 変更点抜粋 ----------------

コンパイラは、名前のないネームスペースから型をインポートする import 文を拒否するように なりました。以前のバージョンのコンパイラは、こうした import 宣言を、理論的には言語で許可 されていなくても (import 句に現れる型名がスコープ内に存在しないため)、 受け入れていまし た。仕様の中では、import 文の中に単純名を含めることはできないこと、また名前のないネー ムス...続きを読む

QJSP/Servlet DBからデータを読み込み、CSV形式でダウンロードさせる・・・・

まず、あるボタンをおすと、Servletに飛ばして、そこでDBから特定のデータを読み込んで、読み込んだデータをカンマ区切りにして、ダウンロードさせます。
そして、ダウンロード直後にそのファイルを開かせないで、ダウンロードした人が任意の場所にファイルを保存させたいのです。 

ダウンロード自体はできているのですが、どうしてもダウンロード直後にエクセルファイルでひらいてしまい、任意の場所に保存させることができません。Officeの入っていないPCなら任意の場所に保存させられるようなのですが・・・・。

解決案をお待ちしております。

Aベストアンサー

resp.setHeader("Content-Disposition", "attachment; filename=\"tets.csv\"");

Servlet でこの一行を入れてみてはどうですか?
JSPはこの場合、関係ないですよね?
多分、attachment; が開かない様にしてくれたかと思うんですが。。。

適当です。間違っていたらすみません。

QEclipse-Tomcat環境のWEB-INF/classes

EclipseでTomcatプラグイン(sysdeoのtomcatPluginV31)を使用してJSPのページを作成しています。
たとえば、
class A{
int a = 10;
}
といったクラスを作ってWEB-INF/classesにA.classを配置しても、JSP側から
<%
A a = new A();
%>
<html><body>
<%=a.a%>
</body></html>
といった使い方をした場合、シンボルを解釈できないといったエラーが出てしまいました。WEB-INF/classesにclassファイルを配置しただけでは自作クラスを使用することはできないのでしょうか
ご存知の方、お力をお貸しいただけないでしょうか
お願いします。

環境
J2SDK SE 1.4.2.12
eclipse3.1.2
Tomcat 5.0.28
sysdeoのtomcatPluginV31

Aベストアンサー

ん?? 単に、JSPから自作クラスを利用するだけなら、普通にできますよ。
packageの指定などはきちんとできてますか?
それとPageディレクティブでimportをしていますか?
例えば、jp.hoge.Aというクラスならば、ソースコードは

package jp.hoge;
public class A { ・・・・ }

という形で定義し、作成されたclassファイルは、

WEB-INF/classes/jp/hoge/A.class

というように配置する必要があります。
また、JSP側では

<%@page import="jp.hoge.A" %>

としてこのクラスをimportしておく必要があります。
 このimportするpageディレクティブを書き忘れるとクラスを認識しません。デフォルトパッケージでクラスを書いてimportしなかったりすると認識できないですよ。
そのあたりを再度確認してみてはいかがでしょう。

QJSPでログアウトしようとすると、「ファイルのダウンロード」が表示される。

サーブレット初心者です。

ログアウトの処理を実装しようと思い、下記のコードを書いて、ログアウトボタンのリンク先に下記のコードのファイル名を指定したのですが、ログアウトのボタンをクリックするとなぜか
「下記のファイルをダウンロードしますか?」
というボックスが出てきてしまいます。

よろしくお願いします。

<%@ page contentType="text/hmlt;charset=Windows-31J"%>
<%
session.invalidate();
%>
<html>
<head><title>ログアウト</title></head>
<body>
ログアウトしました。
</body>
</html>

Aベストアンサー

こんにちは

さすがに text/hmlt はダメじゃないですかね・・

QStruts・Tomcat・JSPの初心者練習環境

お世話になります。

Strutsを勉強しようと思い、PCサイト「@IT」で「@IT:連載 Strutsを使うWebアプリケーション構築術(2)」(http://www.atmarkit.co.jp/fjava/rensai3/struts02/struts02_1.html)を見つけました。

しかしながらこの執筆が2004年のため、最新に近いStruts・Tomcat・JSPでは記述通りに設定さえできません。例として「Tomcatのアプリケーションフォルダ「%CATALINA_HOME%\webapps」配下にコピーします」とありますが、最新Struts2.2.3.1には、そのフォルダは存在しません。

そこで、Struts・Tomcat・JSPそれぞれどのバージョンを組み合わせたら、初心者学習ができるか、教えてください。
それが書かれているURLを教えていただいても結構です。

どうぞよろしくお願いいたします。

Aベストアンサー

ソフトウェアが新しくなると、「前とはこう違う」という解説が多くなっていくので、結局は古いバージョンの知識が基礎として必要、みたいなことが多々あります。

質問の内容だと「Tomcat のアプリケーションフォルダ」の話で、「最新の Struts にはない」とかかれていて、TOMCAT / Struts の関係自体の理解は大丈夫かな??とちょっと気になりました。入門も大事ですが、環境構築やシステムの動作原理を先に簡単にでも調べてみたほうがいいと思いますよ。

Struts でいうなら、1.X 系と 2.X 系に大きく分けられるので、2.X 系を使うのであれば 2.X 系の解説サイトを見つけるといいと思います。google で「Struts 入門」で検索すると、同じ @IT の中の

http://www.atmarkit.co.jp/fjava/special/struts2/struts2_1.html

も結構上位にヒットしてますよ。他にも上位に有用そうなサイトはいっぱい見て取れます。

サイトの解説を見て学習する場合、バージョンが同じ方がもちろんいいですが、メジャーバージョンが同じなら大抵大丈夫だと思います。動かない場合はその原因を調べていけば、大変ですが何が違うかも知ることができますよ。

ソフトウェアが新しくなると、「前とはこう違う」という解説が多くなっていくので、結局は古いバージョンの知識が基礎として必要、みたいなことが多々あります。

質問の内容だと「Tomcat のアプリケーションフォルダ」の話で、「最新の Struts にはない」とかかれていて、TOMCAT / Struts の関係自体の理解は大丈夫かな??とちょっと気になりました。入門も大事ですが、環境構築やシステムの動作原理を先に簡単にでも調べてみたほうがいいと思いますよ。

Struts でいうなら、1.X 系と 2.X 系に大きく分けられる...続きを読む


人気Q&Aランキング

おすすめ情報