cookie製作儲存密碼的登陸頁面
阿新 • • 發佈:2018-12-19
第一步:寫一個jsp頁面,製作登陸頁面的表格。如果coolie中已經儲存了使用者名稱和密碼資訊,可以不用輸入,直接再登陸頁面直接顯示出來。
<h1>登陸頁面</h1> <hr> <% String username = ""; String password = ""; Cookie[] cookies = request.getCookies(); for (Cookie c : cookies) { if (c.getName().equals("username")) { username = URLDecoder.decode(c.getValue(), "utf-8"); } if (c.getName().equals("password")) { password = URLDecoder.decode(c.getValue(), "utf-8"); } } %> <form action="doLogin.jsp" method="post"> <table> <tr> <td>使用者名稱:</td> <td><input type="text" name="username" value="<%=username%>"></td> </tr> <tr> <td>密碼:</td> <td><input type="password" name="password" value="<%=password%>"></td> </tr> <tr> <td><input type="checkbox" name="remember" checked="checked" value="true">是否記住賬號密碼</td> </tr> <tr> <td><input type="submit" value="提交"></td> </tr> </table> </form>
第二步:寫一個處理提交表單資訊的jsp頁面,得到表單中的資訊,如果勾選框勾中的話,將使用者名稱和密碼資訊存放在新建立的cookie物件中,如果沒有勾中的,將cookie中原來儲存的資訊也清除。
<h1>表單處理頁面</h1> <hr> <%request.setCharacterEncoding("utf-8"); %> <% String username = request.getParameter("username"); String password = request.getParameter("password"); String isRemember = request.getParameter("remember"); if (isRemember != null) { Cookie usernameCookie = new Cookie("username", URLEncoder.encode(username, "utf-8")); Cookie passwordCookic = new Cookie("password", URLEncoder.encode(password, "utf-8")); usernameCookie.setMaxAge(24 * 60 * 60); passwordCookic.setMaxAge(24 * 60 * 60); response.addCookie(usernameCookie); response.addCookie(passwordCookic); } else { Cookie[] cookies = request.getCookies(); for (Cookie c : cookies) { if (c.getName().equals("username") || c.getName().equals("password")) { c.setMaxAge(0); } response.addCookie(c); } } %> 使用者名稱:<%=username %> <br> 密碼:<%=password %> <br> <a href="test.jsp">點我測試cookie是否儲存資訊</a>
第三步:寫一個測試jsp頁面,看cookie物件是否建立,如果儲存了資訊的話,可以從這裡頁面中顯示出來。
<h1>測試cookie是否儲存頁面</h1> <hr> <% String username = ""; String password = ""; Cookie[] cookies = request.getCookies(); for (Cookie c : cookies) { if (c.getName().equals("username")) { username = URLDecoder.decode(c.getValue(), "utf-8"); } if (c.getName().equals("password")) { password = URLDecoder.decode(c.getValue(), "utf-8"); } } %> 使用者名稱:<%=username%><br> 密碼:<%=password%>