cookie是小段的文本信息,通过使用cookie可以标识用户身份记录用户及密码,跟踪重复用户,cookie在服务器生成并发给浏览器,浏览器将cookie的key/value保存到某个指定的目录中,服务器的名称与由服务器端定义。
通过cookie的getCookies()方法可以获取到所有的cookie对象集合,然后通过cookie对象的getName()方法获取到指定名称的cookie,再通过getValue()方法即可获取cookie对象的值。另外,将cookie对象发送到客户端使用response对象的addCookie()方法。
index.jsp
<%
String welcome="第一次访问";
String[] info=new String[]{"","",""};
Cookie[] cookies=request.getCookies();//request.getCookies();可以获取cookie对象集合
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
//cookies[i].getName()获取指定名称的cookie;
if(cookies[i].getName().equals("wocao")){
info=cookies[i].getValue().split("#");//Split函数返回一个下标从零开始的一维数组
//,它包含指定数目的子字符串。
welcome=",欢迎回来";
}
}
}
%>
<%=info[0]+welcome %>
<form method="post" action="show.jsp">
<ul >
<li>姓 名:<input name="name" type="text" value="<%=info[0] %>"/>
<li>出生日期:<input name="birthday" type="text" value="<%=info[1] %>"/>
<li>邮箱地址:<input name="mail" type="text" value="<%=info[2] %>"/>
<li><input type="submit" value="提交"/>
</ul>
</form>
show.jsp
<%
String name=request.getParameter("name");
String birthday=request.getParameter("birthday");
String mail=request.getParameter("mail");
Cookie myCookie=new Cookie("wocao",name+"#"+birthday+"#"+mail);
myCookie.setMaxAge(60*60*24*365);//设置cookie有效期
response.addCookie(myCookie);
%>
表单提交成功
<ul style="line-height: 24px">
<li>姓名:<%=name%> </li>
<li>出生日期:<%=birthday%> </li>
<li>电子邮箱:<%=mail%> </li>
<li><a href="index.jsp">返回</a></li>
</ul>