2012-02-25 14 views
4

私は、製品のリストを含むjspファイルにリクエストを転送するサーブレットを持っているとしましょう。 たとえば、Login.javaは、(成功したログイン時に)要求をProducts.jspに転送するサーブレットです。 今、Products.jspに私が最初にチェックする必要があり、そのユーザーが実際に記録されます。ちょうどlocalhost:8080/store/Products.jspを書き込むことによって、製品を見てからユーザーを防ぐためにユーザーがjspファイルに直接アクセスするのを防ぐ

<% if (request.getSession().getAttribute("username") == null) { 
    response.sendRedirect("/store/login"); 
    return; 
} %> 

これがあります。 jspファイルにJavaコードを書くことを避けるのが最善の記事をいくつか読んでいます。 私の質問は、この問題を解決するよりエレガントな方法ですか?

+0

この記事を読む:http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files – BalusC

答えて

4

はい - すべてのJSPファイルをWEB-INF/(例:WEB-INF/jsp)に入れ、サーブレットからのみ転送します。たとえば、サーブレットが/fooにマップされている場合、そのdoGet()メソッドは、作成したロジックを実行し、product.jspに転送します。

裸のサーブレットでは冗長すぎるかもしれないので、Spring MVCのようなフレームワークは非常に役に立ちます。 通常、認証チェックは各リクエストをチェックするフィルタを置き、ユーザが認証されていない場合はフィルタがリダイレクトされます。

関連する問題