今回は、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」が発生します。
