1. 程式人生 > >用Cookie實現登入功能

用Cookie實現登入功能

掌握要點

鞏固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,填寫資料。