今天给我们上课的是冯威老师,老师以前工作的公司是对日软件开发的,有将近十年的工作经验了,众所周知,日本人对工作要求是十分严谨的,据老师所说,以前在公司编码的时候要求是一行代码一行注释,如果没有注释的话在审核的时候是不会通过的,没有注释是会被按照bug处理的,所以现在老师上课现场编码的时候也是行行写注释,上冯老师的课基本上不用做什么笔记,只要把代码一copy就是笔记了,呵呵!一个老师一个讲课方式,冯老师的讲课方式是项目驱动教学,他把以前做的项目拿出来通过项目让我们体验项目中的部分内容用所学习的知识如何实现,使我们对所学知识认识更加深刻,主要侧重于应用.
因为是第一天接手我们这个班,对我们班的具体情况还不是很了解,我们也需要时间去适应老师的讲课方式,所以今天并没有讲太多的内容,上午主要是把servlet方面的知识串起来梳理了一下(),又重点讲了一点表单提交后获取表单元素值,对文本框,密码框,单选按钮,复选按钮,文本区域,下拉列表等各种情况进行了详细的讲解,下午学习了新内容cookie,我这里介绍一下cookie:
Cookie是客户端技术,利用这个技术,服务器可以把与会话相关的数据以cookie的形式写给客户端,客户端再去访问服务器中的其它web资源时,会带着这些cookie去。这些web资源就可以通过客户端带过来的数据,判断用户曾经干过什么事情。
1.设置Cookie
Cookie cookie = new Cookie("key", "value");
cookie.setMaxAge(60);
设置60秒生存期,如果设置为负值的话,则为浏览器进程Cookie(内存中保存),关闭浏览器就失效。
cookie.setPath("/test/test2");
设置Cookie路径,不设置的话为当前路径(对于Servlet来说为request.getContextPath() + web.xml里配置的该Servlet的url-pattern路径部分)
response.addCookie(cookie);
2.读取Cookie
该方法可以读取当前路径以及“直接父路径”的所有Cookie对象,如果没有任何Cookie的话,则返回null
Cookie[] cookies = request.getCookies();
3.删除Cookie
Cookie cookie = new Cookie("key", null);
cookie.setMaxAge(0);
设置为0为立即删除该Cookie
cookie.setPath("/test/test2");
删除指定路径上的Cookie,不设置该路径,默认为删除当前路径Cookie
response.addCookie(cookie);
4.修改Cookie
Cookie[] cookies=request.getCookies();
if(cookies.length>1){
for(int i=0;i<cookies.length;i++){
if(cookies[i].getName().equals("key")) {
String oldValue = cookies[i].getValue();
String newValue= "newValue";
cookies[i].setValue(newValue);
response.addCookie(cookies[i]);
break;
}
}
}
注意:
一个Cookie只能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。
一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie。
浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。
注意,删除cookie时,path必须一致,否则不会删除。