1.servlet生命周期描述
在servlet生命周期中,对象自始至终只被创建一次。
首先当web服务开启后,服务器将类加载进来,当客户端第一次发送请求过来,通过new()方法对象就被创建了,接着服务器调用init()方法,且此方法也仅被调用一次,然后servlet以多线程的形式处理客户端请求,在线程池中取出线程分配给每一个请求,servlet调用service()方法再调用受保护的service()方法,再以doGet()或doPost()等doXXX()方法处理请求,最后,当web应用程序退出或重新加载时,servlet调用destroy()方法退出。
2.关于cookie:
1.服务器可以向客户端写内容,但只能是文本内容
2.客户端同时也可以阻止服务器写入内容
3.只能拿自己webapp写入的内容
4.cookie分为两种:
a。属于窗口或子窗口的cookie,放在内存中,当窗口关闭cookie消失
b。属于文本的cookie,具有生命周期
5.一个servlet/jsp设置的cookie能够被同一个路径下或子路径下的servlet/jsp读取(此路径为URL不为绝对路径)
3.cookie与session的区别:
1.cookie存在于客户端,使用文本存储,session存在于服务器端,使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。
2.父路径不能够访问子路径的cookie,但子路径可以访问父路径的cookie,session不存在父子路径的访问关系,只要页面没有关闭,session就会一直存在,可以跨窗口存在。
3.cookie可以说是针对浏览器的,浏览器可以阻止cookie的产生,而session是针对用户的,通过sessionID来区分不同的用户,当某个用户访问服务器时,服务器首先检查这个客户端的请求里是否已包含了一个sessionID,如果已包含则说明以前已经为此客户端创建过session,服务器就按照sessionID把这个session检索出来使用(检索不到,会新建一个),如果客户端请求不包含sessionID,则为此客户端创建一个session并且生成一个与此session相关联的sessionID,并且sessionID将被在本次响应中返回给客户端保存。
4.session也可以结合cookie使用,当客户端禁止了cookie,可以通过session的URL重写的方式对session进行标识,这样就可以完成cookie的功能。
5.cookie一般用来记录用户喜好和习惯,session用来标识用户,验证用户信息。