JSPはCookie技術を利用してログイン免除を実現する方法

4552 ワード

タイトル:
ユーザーログイン画面では、アカウントとパスワードを入力し、ユーザーに「ログイン状態を保存するかどうか」を選択させ、アカウントのパスワードが等しい場合はログインに成功し、ウェルカムページに進みます.ログイン時にログインステータスが保存されている場合、次回ログイン時にログインページにアクセスするとウェルカムページに入ります.ただし、お客様がログインせずにウェルカムページにアクセスすると、ログインページにジャンプします.
問題解決の考え方:
テーマは比較的簡単で、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(ウェルカムページ)