cookie是小段文本信息,通过使用cookie可以标识用户身份、记录用户名以及密码、跟踪重复用户。cookie在服务器端生成并且发送给浏览器,浏览器将cookie的key/value保存到指定的目录当中,服务器的名称与值可以有服务器端定义。通过cookie的getCookies()方法可以获取到所有的cookie对象集合,然后通过cookie对象的getName()方法获取到指定名称的cookie,再通过getValue()方法就可以获取到cookie对象的值。另外,将一个cookie对象发送到客户端使用了response对象的addCookies()方法。
客户端代码(文件名为CookieClient.jsp):
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Cookie案例客户端</title>
</head>
<body>
<%
String welcome = "第一次访问";
String[] info = new String[]{"","",""};
Cookie[] cook = request.getCookies();
if(cook != null)
{
for(int i = 0;i < cook.length;i++)
{
if(cook[i].getName().equals("mrCookieInfo"))
{
info = cook[i].getValue().split("#");
welcome = ",欢迎回来!";
}
}
}
%>
<%=info[0]+welcome %>
<form action="CookieServer.jsp" method="post">
<ul style="line-height:23px">
<li>姓 名:<input name="name" type="text" value="<%=info[0]%>"></li>
<li>出生日期:<input name="birthday" type="text" value="<%=info[1] %>"></li>
<li>邮箱地址:<input name="mail" type="text" value="<%=info[2] %>"></li>
<li><input type="submit" value="提交"></li>
</ul>
</form>
</body>
</html>
服务器端代码(文件名为CookieServer.jsp)
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Cookie案例服务器端</title>
</head>
<body>
<%
String name = request.getParameter("name");
String birthday = request.getParameter("birthday");
String mail = request.getParameter("mail");
Cookie myCook = new Cookie("mrCookieInfo",name+"#"+birthday+"#"+mail);
myCook.setMaxAge(60*60*24*365);
response.addCookie(myCook);
%>
表单提交成功
<ul style="line-height:24px">
<li>姓名:<%=name %></li>
<li>出生日期:<%=birthday %></li>
<li>电子邮箱:<%=mail %></li>
<li><a href="CookieClient.jsp">返回</a></li>
</ul>
</body>
</html>
客户端运行结果:
服务器端运行结果:
第一次访问网页的时候客户端页面的左上角不会提示用户姓名,只有第二次访问的时候,服务器端才会把第一次用户访问页面填入的个人信息反馈给客户端,这个时候在客户端的页面当中才会显示相应的欢迎信息。这就体现出cookie的作用了。