日常记录-Cookie、Session、域对象

一、Cookie

Cookie:数据存储在浏览器客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清除

//创建Cookie
Cookie cookie = new Cookie(cookieName, cookieValue);

Cookie会以响应头的形式发送给浏览器客户端,但是其中不能包含中文

resp.addCookie(cookie);

Cookie信息是以请求头的方式发送到服务器端的 

//通过request获得所有的Cookie
Cookie[] cookies = request.getCookies();
//遍历Cookie数组,通过Cookie的名称获得我们想要的Cookie
protected void  service(HttpServletRequest req,  HttpServletResponse resp) {
       Cookie[] cookies =  req.getCookies();
       for (Cookie cookie : cookies)  {
         System.out.println("name:" + cookie.getName() + ", value: " + cookie.getValue());
       }
}

Cookie保存时间

1、默认情况下当浏览器关闭后,Cookie数据被销毁

2、进行持久化存储

cookie.setMaxAge(10 * 60);//保存10分钟

设置Cookie信息在浏览器的磁盘文件中存储的时间是10分钟,过期浏览器自动删除该Cookie信息,如果先要删除客户端已经存储的Cookie信息,就是将持久化时间设置为0

二、Session

Session:将数据存储到服务器端,安全性相对好,但是增加服务器的压力

1、获得Session对象

①、request.getSession(false) :得到session对象,原来有Session就直接返回,没有返回null

②、request.getSession(true)  :创建或得到session对象,原来有Session就直接返回,没有Session自动创建新的session对象

2、向session中存取数据

①、session.setAttribute(String name,Object obj);

②、session.getAttribute(String name);

③、session.removeAttribute(String name);

1、当在同一个浏览器中同时打开多个标签,发送同一个请求或不同的请求,仍是同一个session;

2、当使用不同的浏览器时,发送请求,即使发送相同的请求,是不同的session;

3、当把当前某个浏览器的窗口全关闭,再打开,发起相同的请求时,是不同的session;

三、Session与Cookie的区别

1、Session存储数据在服务器端,Cookie在客户端

2、Session没有数据大小限制,Cookie有

3、Session数据安全,Cookie相对于不安全

四、域对象

域对象简单来说就是存储数据的区域

四个域对象:Request、ServletContext、Session、PageContext

域对象的方法:

1、request.setAttribute("list", list);

2、request.getAttribute("list");

3、request.removeAttribute("list");

Request、Session、ServletContext这三个域对象的区别:

1、request.setAttribute("list", list); requst的范围只在转发中有效

2、session.setAttribute("list", list); session的范围是当前这个用户的所有操作都有效

3、servletContext.setAttribute("list", list);servletContext的范围整个项目都有效

域对象范围:ServletContext>Session>Request>PageContext

使用原则:小的范围能完成功能就放到小的里面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值