こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

struts2でのフィルターを使ったセッション管理

はじめまして。
struts2,spring frameworkでソフトを作ってますが、セッション管理について質問があります。

1.ログイン画面で、ログイン後にセッションidを登録する。
session.setAttribute (USER_HANDLE, user);
2.他の画面に移動する時に、セッションid(user)が格納されているか確認する。格納されていない場合は、ログイン画面に戻る。

という処理をする場合、actionごとに
HttpSession session = request.getSession (true);
Object user = session.getAttribute (USER_HANDLE);
if (user != null) {
//処理1
return true;
} else {
//処理2
return false;
}

と記述すると手間がかかるので、下記の様なFilterでまとめて管理できないかと考えているのですが、こういう考え方は一般的なのでしょうか?

public class TestAccessFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST);
HttpSession session = request.getSession (true);

Object user = session.getAttribute (USER_HANDLE);
if (user == null) {
//処理1
return "login-success";
} else {
//処理2
return "login";
}
}

actionごとにセッションidが格納されているか確認する代わりに、Filterでまとめて確認できないかということなのですが....
struts2でこういう書き方をして良いのかわからず困っています。
アドバイスをお願いいたします。

投稿日時 - 2009-02-01 01:11:07

QNo.4678828

困ってます

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

voidなのにStringをリターンしているのは置いておいて、

別にFilterで制御しても良いのでは。
自分だったらActionにインターセプターを
設定するかもしれないけど。

投稿日時 - 2009-02-01 03:59:06

お礼

アドバイスありがとうございました。
login用のインターセプターについて解説したサイトがありましたので、調べてみます。

http://codezine.jp/article/detail/3264

ありがとうございました。

投稿日時 - 2009-02-01 12:13:06

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問