JSPはCookie技術を利用してログイン免除を実現する方法
4552 ワード
タイトル:
ユーザーログイン画面では、アカウントとパスワードを入力し、ユーザーに「ログイン状態を保存するかどうか」を選択させ、アカウントのパスワードが等しい場合はログインに成功し、ウェルカムページに進みます.ログイン時にログインステータスが保存されている場合、次回ログイン時にログインページにアクセスするとウェルカムページに入ります.ただし、お客様がログインせずにウェルカムページにアクセスすると、ログインページにジャンプします.
問題解決の考え方:
テーマは比較的簡単で、2つのページの間の相互ジャンプだけです.難点は,ジャンプの条件,およびCookieの生成,破棄である.
解題手順:
1.簡単なログインJSPページを作成する
これは熟練した操作で、次はJSPコードを貼ります.
ここの2つのテキストボックスのvalueに注意してください.彼らはJSPコードで置き換えられています.皆さんはまず気にしないでください.後で言及します.
2.正常にログインしたJSPページを書く
相変わらず簡単な操作で、次はCookieの生成です.
3.ウェルカムJSPページでCookieを生成してアカウントパスワードを保存する
「ログイン情報の保存」をクリックしてログインボタンを押すと、フォームがウェルカムページに送信されます.次にウェルカムページでCookieを利用してアカウントとパスワードを保存します.「はい」をクリックすると
Cookieはアカウントとパスワードを保存します
4.ログインページでCookieが存在するかどうかを検索
Cookieが保存されている場合は、次回ログインするときは、アカウント+パスワードを自動的に入力し、ウェルカムページにジャンプする必要があります.
上記の2つのテキストボックスの和は、ここで定義されています.Cookie配列を生成し、現在のアカウントが保存されているかどうかを検索します.もしあれば、
5.テーマの詳細を改善する:
ただし、お客様がログインせずにウェルカムページにアクセスすると、ログインページにジャンプします.この言葉は、ユーザーが違反操作をした場合、トップページに戻り、以前に保存していたCookieをすべて削除する必要があることを意味します(Cookieを削除しなければ、トップページに戻った後、Cookieを検索するコードに基づいて、Webページが自動的にウェルカムページにリダイレクトされるためです).
Cookieを削除する前に、ユーザーがウェルカムページに直接アクセスしているのか、ログインページからリダイレクトしているのかを判断する条件が必要です.ではgetは一定の役割を果たすことができます.これが
以上のコードはループを通じて、各Cookieのライフサイクルを0にすることで、Cookieを削除することに相当します(response.sendRedirect("login 3.jsp");Webページをログインページにリダイレクトします.
6.完全なコード
login3.jsp(ログインページ)
login4.jsp(ウェルカムページ)
ユーザーログイン画面では、アカウントとパスワードを入力し、ユーザーに「ログイン状態を保存するかどうか」を選択させ、アカウントのパスワードが等しい場合はログインに成功し、ウェルカムページに進みます.ログイン時にログインステータスが保存されている場合、次回ログイン時にログインページにアクセスするとウェルカムページに入ります.ただし、お客様がログインせずにウェルカムページにアクセスすると、ログインページにジャンプします.
問題解決の考え方:
テーマは比較的簡単で、2つのページの間の相互ジャンプだけです.難点は,ジャンプの条件,およびCookieの生成,破棄である.
解題手順:
1.簡単なログインJSPページを作成する
これは熟練した操作で、次はJSPコードを貼ります.
ここの2つのテキストボックスのvalueに注意してください.彼らはJSPコードで置き換えられています.皆さんはまず気にしないでください.後で言及します.
2.正常にログインしたJSPページを書く
。
相変わらず簡単な操作で、次はCookieの生成です.
3.ウェルカムJSPページでCookieを生成してアカウントパスワードを保存する
「ログイン情報の保存」をクリックしてログインボタンを押すと、フォームがウェルカムページに送信されます.次にウェルカムページでCookieを利用してアカウントとパスワードを保存します.「はい」をクリックすると
log=request.getParameter("log");
行のコードの結果は「yes」ですif(log!=null&&log.equals("yes"))
というコードが成立しますCookieはアカウントとパスワードを保存します
String log=" ";
log=request.getParameter("log");
if(log!=null&&log.equals("yes")){
String account=request.getParameter("account");
String pwd=request.getParameter("pwd");
Cookie cookie1=new Cookie("account",account);
Cookie cookie2=new Cookie("pwd",pwd);
cookie1.setMaxAge(600*24);
cookie2.setMaxAge(600*24);
response.addCookie(cookie1);
response.addCookie(cookie2);
}
4.ログインページでCookieが存在するかどうかを検索
Cookieが保存されている場合は、次回ログインするときは、アカウント+パスワードを自動的に入力し、ウェルカムページにジャンプする必要があります.
0)
{
for(Cookie c:cookies){
if(c.getName().equals("account")){
account=c.getValue();
}
if(c.getName().equals("pwd")){
pwd=c.getValue();
}
if(c.getName().equals("account")){
request.setAttribute("flag", 1);
request.getRequestDispatcher("login4.jsp").forward(request, response);
}
}
}
%>
上記の2つのテキストボックスの和は、ここで定義されています.Cookie配列を生成し、現在のアカウントが保存されているかどうかを検索します.もしあれば、
if(cookies!=null&&cookies.length>0)
が成立し、配列の中で私たちが必要とするアカウントとパスワードを見つけて、自動的に2つのテキストボックスに入力し、request.getRequestDispatcher("login4.jsp").forward(request, response);
を利用して私たちがさっき書いた歓迎ページにジャンプします.(request.setAttribute("flag", 1);
)なぜこれを書くのかは後述する.5.テーマの詳細を改善する:
ただし、お客様がログインせずにウェルカムページにアクセスすると、ログインページにジャンプします.この言葉は、ユーザーが違反操作をした場合、トップページに戻り、以前に保存していたCookieをすべて削除する必要があることを意味します(Cookieを削除しなければ、トップページに戻った後、Cookieを検索するコードに基づいて、Webページが自動的にウェルカムページにリダイレクトされるためです).
Cookieを削除する前に、ユーザーがウェルカムページに直接アクセスしているのか、ログインページからリダイレクトしているのかを判断する条件が必要です.ではgetは一定の役割を果たすことができます.これが
request.setAttribute("flag", 1);
の役割を書いた理由です.ここでフラグ量を設定しました.もしページがログインページからリダイレクトされている場合、フラグ量は一緒に受け入れられます.ユーザーがログインページに直接アクセスしている場合、フラグ量はnullになります.コードは次のとおりです. if(f==null){
System.out.println("123");
Cookie cookies[]=request.getCookies();
for(int i=0;i
以上のコードはループを通じて、各Cookieのライフサイクルを0にすることで、Cookieを削除することに相当します(response.sendRedirect("login 3.jsp");Webページをログインページにリダイレクトします.
6.完全なコード
login3.jsp(ログインページ)
0)
{
for(Cookie c:cookies){
if(c.getName().equals("account")){
account=c.getValue();
}
if(c.getName().equals("pwd")){
pwd=c.getValue();
}
if(c.getName().equals("account")){
request.setAttribute("flag", 1);
request.getRequestDispatcher("login4.jsp").forward(request, response);
}
}
}
%>
login4.jsp(ウェルカムページ)
。