Session和Cookie

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/f346867698/article/details/79946654

 1.Cookie是客户端技术,它是由服务端创建,保存在客户端的浏览器的缓存区。

2.每个客户端可以有多个Cookie,但每个Cookie只有一个键值对

3.Cookie是客户端和浏览器之间发送的一小段数据,用户不用介入,Cookie是自动发送

4.Cookie是可以被多个浏览器共享的

//       创建Cookie对象:

    Cookie cookie=new Cookie("键","值");

     //将Cookie添加到响应对象

     response.add(cookie);

       //设置Cookie的存活时间

        cookie.setMaxAge(30*60); //设置时间为30分钟,以毫秒为单位的

      //遍历Cookie

     //Cookie是多个值,所以得到的Cookie应该存放在数组里面

      Cookie[]  cookies=request.getCookies();

 for(Cookie cookies:cookie){

}



Session:Session是服务端保存的一个信息共享区域,客户端如果是第一次访问服务端,那么服务端就会创建一个Session的信息共享区域,保存信息,当客户端再次访问服务端时,服务端就直接在已经创建好的信息共享区域里,处理该客户的请求,从而实现多次请求,相同会话,信息共享。

   Session 信息的保存也是通过键值对的形式进行保存。
  //1.获得Session对象
  HttpSession session=request.getSession(); //获得当前对象,如果没有的话,就创建后返回,如果有,直接返回
  if(session.isNew()) {
   System.out.println("新建会话!");
  }else {
   System.out.println("欢迎回来.");
  }
  //session=request.getSession(true);//true同上,false 是如果有对象,就返回该对象,没有的haul就返回null
  System.out.println(session.getId());//得到Session对象的ID
  System.out.println(session.getCreationTime());//获取创建会话时间
  System.out.println(session.getLastAccessedTime());//获取上次结束会话的时间
  System.out.println(session.getMaxInactiveInterval());//获取对象存活时间
  //session.setMaxInactiveInterval(5);//设置最大存活时间
  session.invalidate();//注销session对象

注:Session本质的实现是通过Cookie的实现,因为都是通过传递数据时携带的ID来进行判断是否是同一请求。session的作用和cookie差不多,也是用来解决Http协议不能维持状态的问题。但是session只存储在服务器端的,不会在网络中进行传输,所以较cookie来说,session相对安全一些。但是session是依赖cookie的,当用户访问某一站点时,服务器会为这个用户产生唯一的session_id,并把这个session_id以cookie的形式发送到客户端,以后的客户端的所有请求都会自动携带这个cookie(前提是浏览器支持并且没有禁用cookie




阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页