アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめまして。
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でこういう書き方をして良いのかわからず困っています。
アドバイスをお願いいたします。

A 回答 (1件)

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



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

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

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

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

お礼日時:2009/02/01 12:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!