07-通過cookie儲存並讀取使用者登入資訊(jsp內建物件)
阿新 • • 發佈:2019-02-18
cookie.jsp
<%@page import="java.net.URLDecoder"%> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>cookie</title> </head> <body> <% //從request中獲取cookie物件的集合 Cookie[] cookies = request.getCookies(); //登入使用者,登入時間 String user = ""; String date = ""; if (cookies != null) { //遍歷cookie物件的集合 for (int i = 0; i < cookies.length; i++) { //如果cookie物件的名稱為mrCookie if (cookies[i].getName().equals("mrCookie")) { //獲取使用者名稱和註冊的時間 user = URLDecoder.decode(cookies[i].getValue().split( "#")[0]); date = cookies[i].getValue().split("#")[1]; } } } //沒有註冊 if ("".equals(user) && "".equals(date)) { %> 遊客您好,歡迎您初次光臨! <form action="deal.jsp" method="post"> 請輸入姓名:<input type="text" name="user" value=""> <input type="submit" value="確定"> </form> <% //註冊 } else { %> 歡迎[ <b><%=user%></b>]再次光臨! <br> 您註冊的時間是:<%=date%> <% } %> </body> </html>
deal.jsp
<%@page import="java.net.URLEncoder"%> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>用於向cookie中寫入註冊資訊</title> </head> <body> <% //設定請求的編碼方式 request.setCharacterEncoding("UTF-8"); //獲取使用者名稱 String user = URLEncoder.encode(request.getParameter("user"), "UTF-8"); //建立並例項化cookie物件 Cookie cookie = new Cookie("mrCookie", user + "#" + new Date().toLocaleString()); //設定cookie有效期為30天 cookie.setMaxAge(60 * 60 * 24 * 30); //儲存cookie response.addCookie(cookie); %> <% //定位到cookie.jsp %> <script type="text/javascript"> window.location.href = "cookie.jsp"; </script> </body> </html>