第4章 Servlet:会话技术(Cookie+Session)
注:不能使用客户的IP地址唯一标识客户。因为客户可能通过局域网访问Internet。尽管在局域网中的每个客户有一个IP地址,但对于服务器来说,客户的实际IP地址是路由器的IP地址,所以该局域网的所有客户IP地址都相同,因此无法唯一标识客户。
1.1Cookie对象:
(1)public String getName():返回cookie名称,名称一旦创建就不能改变。 (2)public String getValue():返回cookie的值。 (3)public void setValue(String newValue):在cookie创建后为它指定一个新值。
(1)public void setDomain(String pattern):设置该Cookie所在的域。域名以点号(.)开头,例如,.foo.com。默认只有发送cookie的服务器才能得到它。 (2)public String getDomain():返回为该cookie设置的域名。
1.2Session对象:
使用HttpSession对象的三个步骤:
1.创建或返回与客户请求关联的会话对象
2.在会话对象中添加或删除属性
3.如果需要可使会话失效
补充:
HttpSession不是线程安全的,其他Servlet和JSP页面可能在多个线程中同时访问或修改这些对象。可以使用同步代码块(对尽可能少的代码块同步)解决:
synchronized(session){ session.serAttribute("user",user); }