javaweb實現記住密碼功能
阿新 • • 發佈:2019-01-03
具體思路是,如果使用者勾選了記住密碼那個框,那麼肯定有是否勾選框的一個標誌引數傳遞到後臺
根據引數,決定是否將使用者名稱和密碼存到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,然後直接作為資料與資料庫進行匹配,匹配成功後直接跳轉登陸後的介面。還是講具體點吧
從cookie中取出對應的username和password,然後用這2個值去資料庫進行查詢操作,跟登入校驗的操作是一樣的。如果資料庫匹配成功,則直接跳過登入頁面到已經登入過後的主頁,其實上面這部分校驗應該寫在專案的第一次跳轉中,即所謂的index介面。具體例子大家參考一下www.csdn.net的記住密碼功能就能理解了。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的方法如下,要注意的是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);
}
}
}