2

Java テクノロジを使用した MVC Web サイトがあります。適切なサーブレットを介してルーティングすると正常に動作する .jsp がいくつかありますが、直接アクセスすると動作しないように見えます。ユーザーが .jsps を直接アドレス指定できないようにしたい。

つまり、 を使用www.url.com/Website/MyServletして に転送できますが、に属性がなく、正しく表示されないため、www.url.com/Website/MyServlet.jspに直接アドレス指定しないようにしたいと考えています。確かにこれは一般的な慣行に違いないでしょうか?これを達成するにはどうすればよいですか? 転送でない限り、すべての *.jsp を not found にリダイレクトするマッピングを作成できますか?www.url.com/Website/MyServlet.jspHttpServletRequest

*.jsp にマップされたすべての非 FORWARD ディレクティブ (INCLUDE REQUEST など) を取得して 404 を送信するフィルターを作成できると思いますが、もっと簡単な方法があるはずだと思いますか? 誰にも提案はありますか?

4

3 に答える 3

6

それらを/WEB-INFフォルダに入れ、それに応じて転送パスを変更します。

request.getRequestDispatcher("/WEB-INF/MyServlet.jsp").forward(request, response);

/WEB-INF(および)フォルダ内のファイル/META-INFは公開されていません。

于 2012-06-01T17:00:19.463 に答える
2

デフォルトでは、WebコンテナはWEB-INFフォルダの下のリソースに直接アクセスすることを許可していません。jspをWEB-INFフォルダ内に置くことができます。

include/forward次に、jspにフィルタを書き込むことができます

于 2012-06-01T17:03:25.360 に答える
0

必要な条件が満たされているかどうかを検出し、コントローラーサーブレットへの転送やユーザーの適切な場所への誘導などの適切なアクションを実行し、必要な条件が満たされていない場合に「正しい」JSPをレンダリングしようとしないコードをJSPに配置します。 。

于 2012-06-01T17:00:26.110 に答える