Servlet/JSP sendRedirect

今回は、sendRedirectについて調べてみたいと思います。

リダイレクトは、Webサーバやアプリケーションサーバがブラウザに特別なステータスコードを返すことによって実現できます。(302)

sendRedirectとは

void sendRedirect(String location) throws IOException
  • location – リダイレクト場所の URL
  • javax.servlet.http.HttpServletResponseインタフェースにあります。

使い方

if(ログインしていない) {
    response.sendRedirect(ログイン画面のURL);
} else {
    // ログインしている
    String memberID = sessionInfo.getMemberID();
}

注意点

  • 引数(location)は、「/」から始まるサイトルート相対URLです。
  • sendRedirectは指定したURLに遷移するのではなく、このメソッドを実行するとHTTPレスポンスヘッダーにこのURLに遷移してという命令を追加するメソッドです。
  • sendRedirectはただ、HTTPレスポンスにデータを追加するだけなので、それ以降のソースコードが実行されます。
if(ログインしていない) {
    response.sendRedirect(ログイン画面のURL);
}

 String memberID = sessionInfo.getMemberID();
  • 上記のソースコードでelse文を削除した場合、ログインしていなユーザーで上記のコードだと「NullPointerException」が発生します。

コメントを残す