12月4日

今後の予定

残りの授業は今週と来週だけなので、遅くても今週で全般的に動作するようにし、来週は細かい調整やデバッグのために時間を確保すること。

1月8日と1月9日の1現目は最終的な動作確認とPowerPointによる発表資料の作成にあてる。
1月9日の2現目は発表とデモを行う。

制限時間:20分
 発表: 10分
 デモ: 5分
 質疑: 5分

詳細は「最終日の発表・デモについて」を参照すること。

ログイン後に決まったページに遷移する方法

Spring Security のデフォルトでは、認証が必要なページAにアクセスしたときに未ログインであればログイン画面を表示し、ログイン後はページAに遷移する。
ログイン画面を表示した後、決まったページに遷移したい場合は、spring-security.xml の form-login タグの設定で always-use-default-target=”true” を指定する。

    <sec:form-login login-page="/login"
        default-target-url="/home"
        login-processing-url="/login"
        always-use-default-target="true"
        authentication-failure-url="/login?error=true" />

このように設定すると、ページAにアクセスしようとしてログイン画面を表示したときも、ログイン後は home に遷移する。

Webアプリケーション内でのファイルアクセス

Webアプリケーションがファイルにアクセスする場合は、Webアプリケーションが動作している物理パスを取得して、その配下のファイルにアクセスしなければならない。

Webアプリケーションが動作している物理パスはServletContextクラスのgetRealPath()メソッドで取得する。
ServletContext は、@Authwired で宣言すればよい。

HogeController.java

@Controller
public class HogeController {
    @Autowired
    private ServletContext context;

    // snip

    /**
     * 例えば画像ファイルを取得する場合
     *
     * @param name 画像ファイル名
     * @return 画像ファイルに対応する File のインスタンス
     */
    private File getImageFile(String name) {
        String dir = context.getRealPath("/images");
        File f = new File(dir, name);
        return f;
    }
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です