写在前面:
以下只用于自己复习,仅供参考,有不到位或错误的地方欢迎指出,非常感谢!
目录
一、Cookie介绍
1.Cookie概念:
Cookie
是保存在客户端的小文本,保存的位置分两种:
(1)Cookie可能保存在客户端浏览器的所占内存中,关闭浏览器后,
Cookie
就不再存在
(2)Cookie也可能保存在客户
PC
机的硬盘上,设置有效时间,超过有效时间后失效
2.Cookie作用
(1)简化登录:很多网站在登录时,可以选择多久之内不需要登录,在选择的时间段内,不用登录即可以跳到到登录成功页面。
(2)记录浏览记录:购物网站,每次登录后,会看到曾经浏览过的商品信息。
3.Cookie的使用原则
Cookie
能够把小文本保存到客户端,在服务器与客户端进行传输。然而,
Cookie
容易造成信息泄露,另外,客户端可以通过设置阻止
Cookie
,也可能手工清除
Cookie
,因此,使用
Cookie
的原则:
(1)不用cookie
保存对保密性要求高的信息,例如银行卡密码等
(2)不用cookie
实现必要功能,防止
cookie
被删除后出现错误
(3)cookie
用来实现“锦上添花”的功能,也就是说,一旦
cookie
被禁止或者被删除,应用依然能正常运行
二、相关操作
1.创建Cookie对象
Cookie对象是以键值对的方式保存的,都是字符串形式
Cookie cookie=new Cookie("name","value")
2.设置Cookie对象的有效时长
时长以秒为单位
setMaxAge(int expiry)
3.将Cookie对象保存到本地硬盘
response.addCookie(newCookie)
4.从本地硬盘查找获取Cookie对象
Cookie[] cookies = request.getCookies();
三、简单的运用
此案例分为客户端页面和后台数据处理页面
1.客户端页面:
代码实现:
<%
String user=null;
String pwd=null;
Cookie[] cookies=request.getCookies();
if(cookies!=null){
for(Cookie cookie:cookies){
if("user".equals(cookie.getName())){
user=cookie.getValue();
System.out.println(user);
}
if("pwd".equals(cookie.getName())){
pwd=cookie.getValue();
}
}
}
if(user!=null&&pwd!=null){
request.getRequestDispatcher("LoginServlet?user="+user+"&pwd="+pwd).forward(request, response);
}
%>
<form action="LoginServlet">
<fieldset>
<legend><font color="red" face="宋体" size="4">登录页面</font></legend>
用户账号:<input type="text" name="user"><br>
用户密码:<input type="text" name="pwd"><br>
一天免登录<input type="checkbox" name="day" value="1"><br>
三天免登录<input type="checkbox" name="day" value="3"><br>
<input type="submit" value="登录">
</fieldset>
</form>
2.后台数据处理
代码实现:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String user=request.getParameter("user");
String pwd=request.getParameter("pwd");
String dayStr=request.getParameter("day");
if("tom".equals(user)&&"123".equals(pwd)) {
int days=0;
if(dayStr!=null) {
days=Integer.parseInt(dayStr);
Cookie userCookie=new Cookie("user",user);
Cookie pwdCookie=new Cookie("pwd",pwd);
userCookie.setMaxAge(days*24*3600);
pwdCookie.setMaxAge(days*24*3600);
response.addCookie(userCookie);
response.addCookie(pwdCookie);
}
request.getRequestDispatcher("succse.jsp").forward(request, response);
}
}