JSPでCのようにヘッダーファイルをインクルードする方法

このQ&Aのポイント
  • JSPでウェブページを作成し、条件の判定に定数を使用したい場合、C言語のヘッダーファイルのように別ファイルを用意して使い回す方法を教えてください。
  • JSPやJava未経験であるため、詰まっている状況です。JSPで同様のことを行う方法についても教えてください。
  • 質問内容に不足があれば指摘していただきたいです。
回答を見る
  • ベストアンサー

JSPでCのようにヘッダーファイルをインクルード

JSPでCのようにヘッダーファイルをインクルード お世話になります。 JSPでウェブページを作成しています。 ページ読み込み部分で前のページからPOSTされた情報に対して、 条件式を使い「真」ならそのページを表示、 偽の場合にはresponse.sendRedirect("URL");で別ページへジャンプをさせようと考えています。 その際に条件の判定に定数を使用したいのですが、 その定数は他のページでも使用する場合があるため、 C言語のヘッダーファイルのように、 別ファイルを用意して使い回しをしたいのですが… //test.h----------------------------- #pragma once const int CHECK_NUM = 15; //----------------------------------- //test.c #include <stdio.h> #include "test.h" int main(){ int n = 10; if(n < CHECK_NUM){ //真 } else{ //偽 } return 0; } このようにすればC言語では外部にかかれた定数を使用することができると思うのですが JSP,JAVAともに未経験のため詰まっています。(目下勉強中です) JSPで同様のことをするにはどのようにしたらよいのか教えていただきたいです。 質問をするにあたり情報の不足などがあるかもしれません。 その際にはお手数ですが、解答にてご指摘いただけると助かります。 宜しくお願い致します。

  • Java
  • 回答数1
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

適当なクラスにstatic finalなフィールドとして定数を持たせて、そのクラスを複数のページから参照すればいいでしょう。

cotae_bb
質問者

お礼

回答ありがとうございます。 なるほど、JAVAでは static final と書くと静的になるんですね。 その方法で検討してみることにします。

関連するQ&A

  • ヘッダファイルの2重のインクルードについて

    ある書物に「ヘッダファイルを複数回インクルードすると、それを”再定義”することによるエラーになる」と書いてありますたが、以下のようなヘッダファイルを作りそれを数回インクルードしても何ら異状が無くコンパイルできました。 math.h→ヘッダファイル名 #define max(a,b)  ((a)>(b)?(a):(b))→ヘッダファイルの内容 c ファイル #include<stdio.h> #include"math.h"←複数回インクルード #include"math.h"←複数回インクルード int main(void){ int x=1,y=2; printf("max(x,y)=%d\n",max(x,y)); return 0; } 環境としては、RedHat Linuxでviです。 何ゆえ、エラーにならないのか良く解りません。 宜しくお願いします。

  • C++のヘッダーについて

    C++のプログラミングをしています そこで出てきた問題なのですが・・・ class Aのヘッダファイルa.hをほかのcppファイルにインクルードすると、 error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません error C2146: 構文エラー : ';' が、識別子 'test' の前に必要です。 とほかのヘッダファイルでコンパイルエラーがでます ヘッダファイルをインクルードしたときのみこのエラーがでて困っています。 解決法や、ヒントになりそうな事例を知りませんでしょうか?

  • なぜ、C++の標準ヘッダをインクルードするとき拡張子をつけないのか。

    なぜ、C++の標準ヘッダをインクルードするとき拡張子をつけないのか。 そもそもiostreamなどは拡張子をもっているのですか? 拡張子はあるけれどインクルードするときに付けてないだけとか?だとしたら、同じファイル名で拡張子の違いで判別できないですよね?a.hとa.hppがあったら#include <a>じゃわからないって意味。 自分でヘッダーファイルを作る場合はどのようにすればいいのでしょうか? 自分で作ったヘッダーファイルも標準ヘッダの様に拡張子を付けないでインクルードすることができますか?そういった事はするべきではないのでしょうか? この拡張子をつけないというのはC++の標準ヘッダだけ特別仕様とか? Cと同じように.hでヘッダーファイル作って#include "a.h"とかにしておけばいいのかなー?? 詳しい方、わかりやすく説明して頂けないでしょうか。よろしくお願いします。

  • C言語でヘッダファイルを自作する

    C言語で#defineを用いてヘッダファイルを作成したのですが、 作成したコンパイルするときにヘッダファイルがオープンできません。 参考にしている資料があるのですが、そこに書かれているサンプルプログラムを 丸ごとコピーして作ったプログラムも同様にヘッダファイルがオープンできない というエラーが出るので、ヘッダファイルを定義する方法そのものが間違っていると 思うのですが、どこが間違っているのでしょうか? よろしければ正しい記述方法もお教えください。 #include <stdio.h> #if !defined SAMPLE_H #define SAMPLE_H wa(int a, int b) { return a+b; } #endif #include "sample.h" int main(){ printf("%d\n",wa(40,70)); return 0; } ヘッダファイルの定義の方法は他にもあるとは思いますが、 今回は#defineを用いた方法でお願いします。

  • 自作したヘッダファイルをインクルードするには

    自作したヘッダファイルをインクルードするには 自作したヘッダファイルを半角スペースを含むフォルダを指定する時、 何かエスケープシーケンス文字が必要でしたでしょうか?ド忘れしてしまいました… 例えば、Program Filesの直下に入れた自作ヘッダファイルa.h(まず考えられないとは思いますが…)を インクルードしたい時、 #include "C:\\Program Files\\a.h" でいいんですよね?

  • C言語のヘッダファイル

    前回のC言語のコンパイラの質問で、たくさんのご回答ありがとうございました。 おかげさまでコンパイラはなんとかなりそうですが、ひょっとしたらまた同じ質問を載せるかもしれません(^^; 今回はC言語のヘッダファイルを自分で作ってみたいんですが、よくわかりません。 microsoft visual studioのvisual c++付属のINCLUDEフォルダにある、stdio.hを開いてみたのですが、基本のprintf()やscanf()なども、どう定義されているか わからず終いでした。本などでもいまいち詳しく書いていなく(そう思うのは僕だけ?)、困っています。c言語のヘッダファイルとc++のヘッダファイルは やっぱり別ものなんでしょうか?ご回答おまちしております。

  • linuxにおけるCの自作ヘッダファイル

    現在C言語のしっかりと学ばなかった部分を学習したいと思い、自作ヘッダファイルの作成を勉強しています。 そこで、書籍のその章を一通り読んだあと、自分で簡単なものを作成してみましたが、エラーが出てうまくいきません。 どうしてかわかる方いたら教えてください。 コード *****main.c***** #include "print.h" int main(void) { print(); return 0; } *****print.c***** #include <stdio.h> void print(void) { printf("test\n"); } *****print.h***** extern void print(void); エラー /tmp/ccH551c1.o: In function `main': /home/ユーザ名/Documents/StudyC/main.c:5: undefined reference to `print' collect2: ld returned 1 exit status CentOS6.6にて端末上での実行です。 自分の解釈では、""でincludeすることでカレントディレクトリから目的のヘッダファイルを見つけ出してインクルードする、また、ヘッダファイル内でexternすることによってprint.cから目的の関数を定義しているので、main.cでは問題なく使えると思っています。 しかし、エラーではprint()が定義されていないと出るのでまったくわかりません・・・。

  • #include <Windows.h>というヘッダファイルについて

    お早う御座います。 Cの初心者です、宜しくお願いします。 「#include <Windows.h>」というヘッダファイルはどのようなプログラムを書いたときにincludeしてやる必要があるのでしょうか。 宜しくお願いします。

  • C/C++のヘッダーファイルやライブラリー関数について

    C言語の勉強をはじめました。コードの最初に書く#include<stdio.h>などの ヘッダーファイルやライブラリ関数を見ることはできるのでしょうか? 初歩的なことですみませんがよろしくお願い致します。

  • JSPでのincludeについて

    JSPからincludeでperlを呼び出したのですが、 perlのファイル内で記載したスクリプトがそのまま文字列として表示されてしまいます。 なにか設定する必要があるのでしょうか。 コマンドから直接perlを実行した場合は期待する結果が返ってくることが確認できました。 --------------------------------------------- ■test.jsp // perlを呼び出し <jsp:include page="test.pl" flush="true"></jsp:include> ■test.pl #!/usr/bin/perl print $result; exit; ■test.jspで表示される結果 #!/usr/bin/perl print "aaaaaaaaaaaaaaaa"; exit; ■期待する結果 aaaaaaaaaaaaaaaa --------------------------------------------- よろしくお願いします。