1. 程式人生 > >07-通過cookie儲存並讀取使用者登入資訊(jsp內建物件)

07-通過cookie儲存並讀取使用者登入資訊(jsp內建物件)

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>