「正しい方法は何ですか」に対する通常の答え。または「これは正しい方法ですか?」それは..... に依存します。
私にできることは、特定のアイデアの長所と短所を伝えることだけです。続くものは私の意見100%です。特定の要件やルールについては知りません。誰かが私に反対すると思う。
JSP
JSPをWEB-INFに配置するかどうかを検討しましょう。
JSPをWEB-INFに配置する利点:
- JSPの実行方法を制御します。JSPをパラメーター化して再利用できるようにする場合(JSPを使用するのは非常に困難です)、それらをWEB-INFに配置し、サーブレットまたはStrutsアクションコントローラーまたは他のフロントコントローラーを使用して前処理を行うことができます次に、制御をJSPに渡し、適切な環境コンテキスト(要求属性、セキュリティチェック、パラメーターのサニテーションなど)を渡します。
- プログラムで、またはファイアウォールまたはIDSレベルで* .jspへのHTTP要求をブロックして、誰かがJSPをWebルートにアップロードし、Webサーバーとしてコードを実行できる可能性を減らすことができます。既存のJSPを上書きする必要があります。大幅なセキュリティの向上はありませんが、妥協が少し難しくなります。
- すべての作業自体を実行し、読み取り/保守が難しい巨大な大規模なJSPとは対照的に、MVC、フロントコントローラー、サーブレットフィルター、依存性注入などの良い習慣を強制します。
JSPをWEB-INFに配置することの短所:
- 前処理を必要としない単純なスタンドアロンページであっても、ページに直接アクセスすることはできません。これは、/ WEB-INFの下にあるファイルがサーブレットコンテナによって処理できないためです。
静的ファイル
HTML、画像、スタイルシート、javascriptなどの純粋に静的なファイルに関しては、それらをWebルート(あなたの場合はmy_app)の下に置きますが、/ WEB-INFではありません(アクセスできないため)。
全体のレイアウト
全体的なディレクトリレイアウトに関しては、ビルドプロセスによって多少異なります。「src」または「source」の下にすべてを保存するのが好きです。なぜなら、ビルドによって生成されるファイルと純粋なソースファイルが明確になるからです。 main
junitクラスのようなテストコードをメインソースコードから分離できます。ただし、単体テストがない場合(そうだよ!)、それは無意味な区別です。
一方、ビルド中にWebルートをまったく操作しない場合(すべてのJSPファイルと静的ファイルの場合など)、/webroot
または/deploy
、必要に応じてファイルをコピーしたり、 .classまたは.jarファイル。過剰に組織化するのは人間(特に開発者)の習慣です。過剰な整理の良い兆候は、単一のサブフォルダーだけで多くのフォルダーを持っていることです。
あなたが見せたもの
mavenによって設定された規則に従っていることを示したので、すでにmavenを使用している場合は、そのレイアウトをそのまま使用してください。あなたが説明したレイアウトには何の問題もありません。