码迷,mamicode.com
首页 > 其他好文 > 详细

黑马day05 Cookie技术入门&记录上次访问的时间

时间:2015-06-18 22:17:49      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:cookie技术

1.Cookie技术:

客户端技术

Cookie是基于set-Cookie响应头和Cookie请求头工作的,服务器可以发送set-Cookie请求头命令浏览器保存一个cookie信息,浏览器会在访问服务器时以Cookie请求头的方式带回之前保存的信息

 request.getCookies();
        
        response.addCookie(Cookie c);
        
        new  Cookie(String name,String value)//Cookie在构造的时候就需要设定好cookie的名字和值
        getName();
        getValue();
        setValue();
        !!setMaxAge与getMaxAge方法  
            -- 一个Cookie如果没有设置过MaxAge则这个Cookie是一个会话级别的Cookie,这个Cookie信息打给浏览器后浏览器会将它保存在浏览器的内存中,这意味着只要浏览器已关闭随着浏览器内存的销毁Cookie信息也就消失了.一个Cookie也可以设置MaxAge,浏览一一旦发现收到的Cookie被设置了MaxAge,则会将这个Cookie信息以文件的形式保存在浏览器的临时文件夹中,保存到指定的时间到来位置.这样一来即使多次开关浏览器,由于这些浏览器都能在临时文件夹中看到cookie文件,所以在cookie失效之前cookie信息都存在.
            -- 想要命令浏览器删除一个Cookie,发送一个同名同path的cookie,maxage设置为0,浏览器以名字+path识别cookie,发现同名同path,cookie覆盖后立即超时被删除,从而就删除了cookie.
            
        !!setPath与getPath方法
            -- 用来通知浏览器在访问服务器中的哪个路径及其子路径时带着当前cookie信息过来
                如果不明确设置,则默认的路径是发送Cookie的Servlet所在的路径
                http://localhost/Day05/servlet/...
        setDomain与getDomain方法
            -- 用来通知浏览器在访问哪个域名的时候带着当前的cookie信息.但是要注意,现代的浏览器一旦发现cookie设置过domain信息则会拒绝接受这个Cookie.我们平常不要设置这个方法

2.实验:

package cn.itheima.cookie;

import java.io.IOException;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CookieServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//设置编码
		response.setContentType("text/html;charset=utf-8");
		Cookie[] cookies = request.getCookies();
		Cookie findC = null;
		//遍历cookies
		if(cookies!=null){
			for(Cookie c:cookies){
				if("last".equals(c.getName())){
					findC=c;
				}
			}
		}
		if(findC==null){
			response.getWriter().write("您是第一次访问,目前时间是:"+new Date().toLocaleString());
		}else{
			response.getWriter().write("您上次访问的时间是:"+findC.getValue()+"<br/>"+"目前时间是:"+new Date().toLocaleString());
		}
		//把当前时间以cookie的方式发送给浏览器-->生命周期默认是会话级别的,即会话结束cookie死亡
		Date date=new Date();
		Cookie last=new Cookie("last", date.toLocaleString());
		response.addCookie(last);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}
运行结果:

技术分享

技术分享

黑马day05 Cookie技术入门&记录上次访问的时间

标签:cookie技术

原文地址:http://blog.csdn.net/u014010769/article/details/46551703

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!