- ベストアンサー
java servlet で大域変数
a-kumaの回答
全ての Servlet を HttpServlet から派生させるのではなく、全ての Servlet 共通の クラスを HttpServlet から派生させて、その他の Servlet は、そのクラスから 派生させる。 例えば、 class MyServletCommon extends HttpServlet { private int count; synchronized void setCount(int c) { count = c; } synchronized int getCount(void) { return count; } } class MyServlet_1 extends MyServletCommon { … } という感じ。 でも、気持ちは分からないではないけど、大域の変数なんて考え方は止めて おいた方が良いですよ。 本当に、どんな Servlet でも参照したい値であれば、ServletContext に 置いておく方が良いと思います。どちらにしろ、全員にアクセス権がある 属性であれば、排他は必要なんだし…
関連するQ&A
- 大域変数について
配列の大域変数externの使いかたがよくわかりません。 BCC Developerを用いて分割コンパイルをしています。 headerファイルにて配列 int map[10][10]; と定義してその配列を他のファイルで使いたい場合は extern int map; ではいけないのでしょうか? あと、headerにて static int * map[10][10] と記述して他のファイルにて extern int *map という記述の仕方は可能なのでしょうか? 大域変数なのにstaticを用いるのはおかしいかとおもいますが… ご教授よろしくお願いします。
- ベストアンサー
- C・C++・C#
- Servletにおけるスレッド間でのグローバル変数の関係
お世話になっております。 サーブレットクラスにて定義したグローバル変数へ、それぞれ別のスレッドからアクセスした場合、 それぞれの値には関連性が無いと認識していたのですが、それは誤りでしょうか? グローバル変数を有するサーブレットクラスを作成し、2つのスレッドを流したところ、1つ目のスレッドでセットした値が、後追いで流した2つ目のスレッドでセットした値に置き換わってしまいました。 それぞれの値を関連性の無いようにしたいのですが どのようにしたら良いのか、ご存知の方いらっしゃいましたらご教授願います。 宜しくお願い致します。
- ベストアンサー
- Java
- java servletでファイルを表示
SERVLETのプログラム中から、あるHTMLファイルを表示させたいのですが、どういう風に書けばいいでしょうか? 例えば、あるボタンを押したら、test.htmlをブラウザに表示する。 といったような感じにしたいです。
- ベストアンサー
- Java
- 変数とフィールドの使い分け
Javaを勉強し始めて半年くらいの者です。最近、プログラムを作成する際に変数とフィールドの使い分けがあいまいになってきました。フィールドとして定義すれば、そのクラス全体で使う事が出来ますよね?しかし、これは変数として最初に適用範囲が全体になるように(要はメソッドの中とかではないところに)定義すればそのクラス全体で使う事が出来ますよね?そうすると、何を変数にして、何をフィールドにすれば良いかがこんがらがってしまうのです。極端な話。。そのクラスで使う変数を全てフィールドで定義してしまえば、変数なんていらないのではないでしょうか?逆に、フィールドをなくして、全て変数で定義することもできるのではないか等と考えてしまうのです。この2つの明確な違いはなんなのでしょうか?みなさんはどういう風に使い分けていますか?
- ベストアンサー
- Java
- Servlet上でのClass#forName()について
こんにちは。三田と申します。 Class#forName()で取得したClassオブジェクトが、Servlet上とそうでない場合で結果が違っていました。 実際、行っている処理は、あるクラスのClassオブジェクトをClass#forName()で取得して、次にそのクラスのインスタンスを生成して、Class#isInstance()をしているだけです。 上記の処理を行った場合に、Servlet上ではfalseで そうでない場合は、trueになるのです。 デバックしてみたところ、インスタンスを生成したときにServlet上では、Classオブジェクトの変数に値が入っていないのに対し、Servletを使用しない場合は、Classオブジェクトの変数に値が入っていました。 その違いは発見したのですが、なぜそうなるのかがわかりません。理由を知っている方がいらっしゃいましたら、ぜひご教授をお願いします。 以上、よろしくお願いします。
- 締切済み
- Java
- jspからServletを呼び、元のjspページに戻るにはどうしたらよいですか?
・jspページにあるボタンを押すとServletに値を渡す。 ・Servletで処理をする。 ・処理の結果を元のjspページに表示する。 というプログラムを作りたいと考えています。 jspページ→Servletで処理をする、という所までは出来たのですが その後元のページに戻すというところで困っています。 jspページは複数(十数ページ)あり、Servletは1つです。 a.jsp→Servlet→a.jsp b.jsp→Servlet→b.jsp このように、どのjspページから呼ばれても、元のjspページに 戻したいのですが、どのようにすれば実現できるでしょうか?
- ベストアンサー
- Java
- インスタンス変数とクラス変数の違い
1つのクラスオブジェクト内のインスタンス全てで共有できる クラス変数 @@a と、 同じインスタンス内であればメソッドの定義を越えてその値を 参照したり、変更したりできるインスタンス変数 @a のスコープの違いをお手すきでしたらご指導願えませんか? あとクラス変数にはセッターやゲッター等のアクセスメソッドを 設定できるんですか? いろいろ知りたいです。
- ベストアンサー
- Ruby
- 変数が渡らない
選択するための3つのボタンを作成し、それぞれ変数ansに値を格納しました。下記がそのActionScriptの例です。 ------------------------------- on(release){ ans=1; _root.nextFrame(); } ------------------------------- ボタンを押した後、別のレイヤーのフレームからMCを読み込みます。 しかし、ボタン内で格納した変数が読み込まれずundefined(未定義)となってしまいます。if文で分岐したいのですが出来ずに困っています。 ボタンをクリックすることで変数に格納した値を、ムービークリップのイベント内で読み込むことは可能でしょうか?
- ベストアンサー
- Flash
- C,C++,Javaの変数の種類
クラス、構造体の変数の中で外部からアクセスできないという設定があります。アクセスできないというのは、 0.値を見ることができるが変更はできない(定数のような感じ? 消費税率とか?) 1.値を見ることはできないが変更することはできる(銀行預金額面風?) 2.値を見ることも変更することもできない (どう利用するのでしょうか?) にわかれるように思います。もし2ならば、その変数は構造体、クラスの外部に影響を与えないように思います。すなわちそのような変数の使用が何を目的としているか不明になるように思いますが。 例えば、Xを2の意味で隠蔽していたとします。 Yを与えて、Z=Y*Xを計算し、Zの値を取り出すと、Xの値が間接的にわかることになります。これだと変数を隠蔽したことならないのでこのような使い方もエラーになるだろうと思いますが。 すなわち、アクセスできないとはどういう意味になるのでしょうか。 C,C++,Javaを同時に見ており、private, staticなどいろいろあって混乱してしまいました。 変数のアクセス制限・隠蔽についてどのように整理すればよろしいでしょうか。 よろしくお願いします。
- 締切済み
- C・C++・C#
お礼
ありがとうございました。そうですね、大域変数という考え方はやめておいて、 ServletContextにしてみます。