cookies (jsp)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41061455/article/details/82147332

在互联网中,cookie是小段的文本信息,在网络服务器上生成,并发送给浏览器,通过使用cookie可以标识用户身份,记录用户名和密码,跟踪重复用户等.浏览器将cookie以key/value的形式保存到客户机的某个指定目录中.

通过cookie的getCookies()方法即可获取到所有cookie对象的集合;通过cookie对象的getName()方法可以获取到指定名称的cookie;通过getValue()方法即可获取到cookie对象的值。另外将一个cookie对象发送到客户端使用了response对象的addCookie()方法。

遇到的问题:

 

可以看到在打开deal.jsp抛出了异常,原来是没有传入user参数,对应的处理方法是 

 其次,注意使用java.net.URLEncoder类的encode()方法进行编码,java.net.URLDecoder类的decode()方法进行解码,从而避免乱码现象.

<!-- index.jsp -->
<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<%@ page import="java.net.URLDecoder" %>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>通过cookie保存并读取用户登录信息</title>
</head>
<body>
<%
	Cookie[ ] cookies = request.getCookies();//从request中获得Cookie对象的集合
	String user = "";	//登录用户
	String date = "";	//注册的时间
	if (cookies != null) {
		for (int i = 0; i < cookies.length; i++) {	//遍历cookie对象的集合
			if (cookies[i].getName().equals("MRCookie")) {//如果cookie对象的名称为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 name="user" type="text" value="">
			<input type="submit" value="确定">
		</form>
<%
	} else {//已经注册
%>
		欢迎[<b><%=user %></b>]再次光临<br>
		您注册的时间是:<%=date %>	
<%
	}
%>
</body>
</html>
<!-- deal.jsp -->
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="java.net.URLEncoder" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>写入cookie</title>
<script type="text/javascript">window.location.href="index.jsp"</script>
</head>
<body>
<%
	request.setCharacterEncoding("utf-8");

	String user=URLEncoder.encode(request.getParameter("user"),"utf-8");	//获取用户名
	Cookie cookie = new Cookie("MRCookie", user+"#"+new java.util.Date().toLocaleString());
	cookie.setMaxAge(2);		//设置cookie有效期2s
	response.addCookie(cookie);	//保存cookie
%>

</body>
</html>

猜你喜欢

转载自blog.csdn.net/qq_41061455/article/details/82147332