1. 程式人生 > >javaweb實現記住密碼功能

javaweb實現記住密碼功能

具體思路是,如果使用者勾選了記住密碼那個框,那麼肯定有是否勾選框的一個標誌引數傳遞到後臺

根據引數,決定是否將使用者名稱和密碼存到cookie中

String username = "llllll";
		String password = "2323232";
	  	Cookie username_c  = new Cookie("username", username);
	  	Cookie password_c = new Cookie("password",password);
                username_c.setPath("/");
                password_c.setPath("/"); //這裡不設定一下路徑發現最後的cookie總是儲存後取不出來
	  	username_c.setMaxAge(60*60*7);//這裡是按秒為單位的
	  	password_c.setMaxAge(60*60*7);
 	        response.addCookie(username_c);
     	        response.addCookie(password_c);



從cookie中獲取存入的值
		Cookie myCookie[]=request.getCookies();
		for (Cookie cookie : myCookie) {
			System.out.println(cookie.getValue());
		}

取出來時進行遍歷,然後用if判斷cookie.getName()      equals 自己當初寫的username和password去獲取對應的value,然後直接作為資料與資料庫進行匹配,匹配成功後直接跳轉登陸後的介面。還是講具體點吧

		String username_cstr = null;
		String password_cstr = null;
		// 判斷使用者是否已經記住密碼
		Cookie myCookie[] = request.getCookies();
		if (myCookie != null) {
			for (Cookie cookie : myCookie) {
				if ("username".equals(cookie.getName())) {
					username_cstr = cookie.getValue();
					session.setAttribute("username", username_cstr);
				}
				if ("password".equals(cookie.getName())) {
					password_cstr = cookie.getValue();
				}
			}
		}
從cookie中取出對應的username和password,然後用這2個值去資料庫進行查詢操作,跟登入校驗的操作是一樣的。如果資料庫匹配成功,則直接跳過登入頁面到已經登入過後的主頁,其實上面這部分校驗應該寫在專案的第一次跳轉中,即所謂的index介面。具體例子大家參考一下www.csdn.net的記住密碼功能就能理解了。

最後,清楚cookie的方法如下,要注意的是setMaxAge為0後並不能清楚cookie,除錯的時候發現,取出來的cookie中只有name和value中有值,而對於的path值都是null,原先設定了path為/,所以這裡得重新設定一下,而且最後還得add到response中去。3個部分缺一不可。

	Cookie myCookie[] = request.getCookies();
		if (myCookie != null) {
			for (Cookie cookie : myCookie) {
				if ("rmuername".equals(cookie.getName())||"rmpassword".equals(cookie.getName())) {
					cookie.setMaxAge(0);
					cookie.setPath("/");
					response.addCookie(cookie);
				}
			}
		}