• ベストアンサー

JSPファイルでのセッション管理について

はじめまして、こんにちは。JSPファイルについて教えてください。 今AというページとBというページがあります。 AはログインページでBはログインに成功した場合だけ表示されるようになっています。 Bのページをお気に入りにいれてAのページでログインせずに直接Bのページへ飛ぶとセッションで管理されているのかAのページが表示されてBのページがみれません。 これはプログラムで制御されているのでしょうか? AのページとBのページのソースを見ると最初に <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ page session="true" %> <%@ page import="AA.properties" %> となっているだけで他はただのHTML言語となっておりました。 Bのページでのセッション管理って <%@ page session="true" %> ここで行われているのでしょうか? それとも<%@ page import="AA.properties" %> のpropertiesっていうところでプログラムが走っているのでしょうか。 分かる方がいれば教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • sasadora
  • ベストアンサー率68% (59/86)
回答No.2

サーブレットやJSPなどのJ2EEの技術で、ログイン認証するときには色々な方法が考えられます。 一番楽でJ2EEの標準といえる方法が、「J2EEのアクセス制限機能」を使用することです。TomcatなどのAPサーバの設定だけで、認証を行わせることができます。 http://www.techscore.com/tech/J2EE/Servlet/10.html 次に考えられるのが、「フィルタ」という機能です。これもプログラムに影響を与えず、アクセス制限よりも柔軟な認証を実現することが可能です。 http://www.techscore.com/tech/J2EE/Servlet/6.html 最後に、eri1235が考えるように、JSP自体に認証ロジックを実装する方法です。 これは全JSPに認証ロジックが必要になるので、あまり使用されません。

eri1235
質問者

お礼

ありがとうございます。 調べたところフィルタをかけているのが分かりました。 まだよくフィルタについては分からないのですが、これから自分なりに調べてみようと思います。 URLもとても参考になりました。

その他の回答 (1)

  • neuron-x
  • ベストアンサー率52% (139/266)
回答No.1

Aページと、Bページの最初に、<%@~%>と3行だけ書かれていて、後が本当にHTMLだけだとすると、ログイン有無を監理しているのはこのJSPたちではありません。(もしJSPにユーザ認証の機能を追加すると、全てのJSPに同じ処理を埋め込む必要があり、あまり行われない方法です) APサーバなどの設定で、JSPの前に、必ず認証系のフィルタを通しているはずです。認証フィルタでは、認証済みの情報がsession内に含まれていればそのまま処理をスルーして、認証が行われていない場合にはログインページに誘導する…という処理を行っているはずです。

eri1235
質問者

お礼

ありがとうございます。 調べたところフィルタをかけているのが分かりました。 まだよくフィルタについては分からないのですが、これから自分なりに調べてみようと思います。

関連するQ&A