用Cookie實現登入功能
阿新 • • 發佈:2019-02-02
掌握要點
鞏固EL 與隱式物件Cookie 使用
鞏固Servlet 中的請求與跳轉
理解並掌握Cookie 會話跟蹤機制
理解並掌握Servlet 中session 會話跟蹤
說明:
實現登入功能,成功登入後,將使用者名稱和密碼儲存到sission 中,並跳轉到登入成功歡迎介面,顯示“歡迎XXX登入成功”,失敗則跳轉到登入介面,在成功登入後,也將使用者和密碼儲存到客戶端Cookie檔案中。再次進到登入介面是,從Cookie檔案中讀取使用者名稱和密碼填充到介面,使用者只需要點選登入。
session超時時間為30分鐘
Cookie過期時間為10秒鐘
使用者名稱為admin密碼為admin
首次登入
登入成功後
再次回到登入頁面
1建立servlet在doPost裡邊
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); request.setCharacterEncoding("UTF-8"); String username=request.getParameter("username"); String password=request.getParameter("password"); if(username.equals("admin")&&password.equals("admin")){ //建立登入使用者名稱Cookie Cookie cook_name=new Cookie("username",username); //建立登入使用者密碼Cookie Cookie cook_pwd=new Cookie("password",password); //設定過期時間為10秒 cook_name.setMaxAge(10); cook_pwd.setMaxAge(10); //將Cookie寫入客戶端 response.addCookie(cook_name); response.addCookie(cook_pwd); //建立session物件 HttpSession session=request.getSession(); //設定session的失效時間為30分鐘 session.setMaxInactiveInterval(30*60); //在session中儲存使用者名稱 session.setAttribute("username",username); //跳轉 response.sendRedirect("success.jsp"); }else{ response.sendRedirect("Login.jsp"); } }
2建立登入介面在Login.jsp的body裡
需要引一個包
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<body> <div style="width:600px;height:300px;margin:0 auto;"> <form action="servleter" method="post"> <p>使用者名稱:<input type="text" name="username" value="${cookie.username.value }"/></p> <p>密碼:<input type="password" name="password" value="${cookie.password.value }"/></p> <input type="submit" value="登入"/> </form> </div> </body>
3登入成功介面success.jsp
<h1>歡迎${sessionScope.username }登入成功!</h1>
4部署到Tomcat伺服器執行專案,位址列輸入http://localhost:8080/專案名/Login.jsp,填寫資料。