浅谈浅谈cookie和和session(小结小结)
主要介绍了浅谈cookie和session(小结),cookie和session在java web开发中扮演了十分重要的作用,本篇文章对其中的重要知识点做一些探究和总结
cookie和session在java web开发中扮演了十分重要的作用,本篇文章对其中的重要知识点做一些探究和总结。
1.cookie存在于浏览器存在于浏览器
随意打开一个网址,用火狐的调试工具,随意选取一个链接,查看其请求头。你就会看到cookie的信息。如下图所示。
如上图所示,我们访问了新浪网,通过火狐浏览器的调试窗口可以看到cookie存在于请求头也就是httprequest中,并且是以键值对(数组)的形式存在。
只要有请求,就会在请求头携带一个cookie的数组(键值对)。cookie是浏览器层面的东西。
2.java中获取中获取cookie
事实上,在java的servlet体系里,我们可以通过如下方式获取cookie.
HttpServletRequest req=ServletActionContext.getRequest();
Cookie[] cookies=req.getCookies();
for(int i=0;i<cookies.length;i++){
Cookie cookie=cookies[i];
System.out.println("name:"+cookie.getName()+",domain"+cookie.getDomain()+",value:"+cookie.getValue()+",maxage:"+cookie.getMaxAge());
}
可以看到,在servlet体系中,把cookie作为一个属性放到了HttpRequest对象里面。通过getCookies()方法得到一个cookie数组。
我们在一个action中加入上述代码,并且访问这个action,则可以看到控制台打印出如下信息。
servlet对cookie进行了封装,cookie对象有几个属性,如name,domain,value,maxage等,具体的意义可以参考servlet的api文档。
以上的请求的cookie是我首次访问某一个网站的链接时候产生的。可以看到cookie数组中只有一个元素。这边先注意一下,后续会有更进一步的说明。
3.java中向中向cookie中添加元素中添加元素
说了获取cookie数组和cookie,我们一定也想知道如何把我们自己的一些信息放进cookie,其实很简单。http的一次请求总是伴随着一次响应,我们就将cookie信息放入到响应中,传递给浏览
器。在java下代码是这样写的。
HttpServletResponse res=ServletActionContext.getResponse();
Cookie cookie=new Cookie("xdx", "i'm xdx");
res.addCookie(cookie);
可以看到当我们发起这个请求时,在响应头有下列信息。
也就是通过这次请求,我们把xdx=i'm xdx 这个cookie通过response放进了浏览器。
当我们再次访问该网站上的其他页面的时候,在请求头都将带有这个cookie。如下图所示。