- PR -

WebアプリでのJSPの位置

投稿者投稿内容
オノマン
会議室デビュー日: 2004/11/30
投稿数: 6
投稿日時: 2004-11-30 23:20
初めての投稿です。
環境は以下のとおりです。
 Appサーバ:tomcat5.0
 struts:1.2

現在、Webアプリ名の直下にJSPを配置していますが、これをWebアプリ名/WEB-INF/JSP配下に置きたいです。
配下に移動させたのですが、struts-config.xmlにどのように記述すればよいのかが分かりません。

WEB-INF配下に置くには、何か設定が必要なのでしょうか?
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2004-12-01 01:33
試してみても駄目だったんですか?
試す前なら一度調べた方がよいかと・・・

ちなみに、今までは
XXX/JSPに配置していて、/JSP/XXX.jspにfowardしてたんですか?

それなら、
/WEB-INF/JSP/XXX.jspでOKだと思いました。
影フリー
常連さん
会議室デビュー日: 2004/11/12
投稿数: 39
お住まい・勤務地: 東京都
投稿日時: 2004-12-01 09:42
WEB-INF/のところを外部のブラウザがアクセスするのは禁止じゃないですか?
WEB-INF/の下はシステム的に重要なライブラリやプロパーティファイルが置ける場所だから。。
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2004-12-01 11:19
基本的に完全に外部からのWEB-INF配下参照はやめたほうがいいですよね。

ただ、某フレームワークとかだと、WEB-INF配下(セキュアな場所)にJSPを
置いて、画面表示エンジンみたいなのが、設定ファイルに設定されている
通りにWEB-INF配下のJSPをインクルードして表示させる、みたいなことは
やっていました。

ですので、やるのなば外部からWEB-INF配下を直接参照させるのではなく
トリッキーなことをしてシステムがWEB-INF配下から拾ってくるとかに
した方が良いと個人的には思います。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2004-12-01 12:12
この話って、外部参照させたいって話ですか?
WEB-INF配下はブラウザで直接JSP等を参照することは当然できないですけど、
サーブレットからのフォワードだったら見れませんでしたっけ。

Strutsがうまくやってくれてるのかな。。。
オノマン
会議室デビュー日: 2004/11/30
投稿数: 6
投稿日時: 2004-12-01 23:33
引用:

/WEB-INF/JSP/XXX.jspでOKだと思いました。




すみません・・・上記のとおり/WEB-INF/JSP/XXX.jspと書いて行けました。
試したときはWEB-INF/JSP/XXX.jspと書いていて/を忘れていました。
しかし、CSSファイルの読み込みがうまくいきません。
CSSファイルは、WEB-INF/css/XXX.cssに配置してあります。
JSPでCSSファイルを読込む場合に/WEB-INF/css/XXX.cssと記述しても読込まれません。

ところで、WEB-INF配下は外部参照禁止ということですが、アドレスにhttp://localhost:8080/WebApp名/XXX.jspでアクセスされてしまわないように
index.jsp以外は、WEB-INF配下にJSPを配置しようと思っていました。

他の方々は、index.jsp以外のJSPファイルのアクセスさせたくない場合はどのような対応をとっているのでしょうか?
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2004-12-01 23:59
cssはブラウザからGETで取得しに行きます。
ですので、外部から参照できない階層に存在したら
当然参照はできませんね。
静的コンテンツはHTTPサーバ側か、
APサーバの参照可能な位置に配置すべきです。

index.jspですが、私の場合は、

・index.jsp等 > APサーバのアプリケーションルート
・業務ロジックとの連携が必要なJSP > WEB-INF配下

という風に配置してます。別にindex.jspじゃなくても構わないですが。
teto
ベテラン
会議室デビュー日: 2002/07/31
投稿数: 61
投稿日時: 2004-12-02 10:06
アプリの構成が以下だとして

/webapp/css/style.css
/webapp/WEB-INF/jsp/forwarded.jsp

web.xmlのアクションへのマッピングが以下なら
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

forwarded.jsp
は相対パスで「css/style.css」
で参照可能です。

それと少なくともStrutsを利用しているのであれば
WEB-INF配下にjspをおくのは常識です。Actionを
経由しないJSPなんて原則ないはずですし。(indexページを除く)

スキルアップ/キャリアアップ(JOB@IT)