JavaWeb基础—会话管理之Cookie

一、什么是会话

  打开浏览器,浏览各种资源,点击各种超链接,直至关闭浏览器,整个过程称为会话

二、会话管理的两种技术

  1.Cookie

    基于客户端。以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。

  2.Session

    基于服务端。session类似于客户端在服务器端的账户。使用Map存放。服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象。

三、Cookie的用途 

  Cookie的用途:
      服务器用来跟踪客户端状态
      保存购物车等
      显示上次登录的名称

  (常用为保存购物车,自动登陆)

四、Cookie常用API

  在 javax.servlet.http.Cookie这个包中,可以查询到几个常见的API

    Cookie(String name, String value) : Cookie的构造器

    get/setMaxAge(int age) : 操作cookie的最大存活时间(cookie的有效期),设置了有效期后关闭浏览器会把cookie保存到硬盘上。不设置则关闭了浏览器会话就结束了,cookie也就不存在了。<0则在内存中的寿命以秒为单位。>0为设置一个过期时间,=0就是杀死了。

    getName() : 得到cookie的名字

    get/setValue(String newValue) : 操作cookie的值

    get/setPath() : 操作cookie的有效路径,比如把cookie的有效路径设置为"/xdp",那么浏览器访问"xdp"目录下的web资源时,都会带上cookie

五、javaWeb中操作cookie

便捷方式(精通):response.addCookie():服务器向客户端(浏览器)保存cookie  服务端送出(add)
         request.getCookies():加了s,返回的是浏览器归还的cookies(数组)  客户端拿(get)

         例如得到最后一次登陆时间: 

   PrintWriter out = response.getWriter();
        //获取浏览器访问访问服务器时传递过来的cookie数组
         Cookie[] cookies = request.getCookies();
        //如果用户是第一次访问,那么得到的cookies将是null
         if (cookies!=null) {
             out.write("您上次访问的时间是:");
             for (int i = 0; i < cookies.length; i++) {
                Cookie cookie = cookies[i];
                 if (cookie.getName().equals("lastAccessTime")) {
                    Long lastAccessTime =Long.parseLong(cookie.getValue());
                     Date date = new Date(lastAccessTime);
                     out.write(date.toLocaleString());
                }
             }
         }else {
             out.write("这是您第一次访问本站!");
        }

         //用户访问过之后重新设置用户的访问时间,存储到cookie中,然后发送到客户端浏览器
         Cookie cookie = new Cookie("lastAccessTime", System.currentTimeMillis()+"");//创建一个cookie,cookie的名字是lastAccessTime
        //将cookie对象添加到response对象中,这样服务器在输出response对象中的内容时就会把cookie也输出到客户端浏览器
         response.addCookie(cookie);
    }
时间: 2024-10-23 20:09:46

JavaWeb基础—会话管理之Cookie的相关文章

JavaWeb基础—会话管理之Session

一.什么是session session类似于客户端在服务器端的账户.使用Map存放 一个会话锁定一个用户(一般情况下是一个客户端,即一个浏览器独占一个session对象),即使使用浏览器访问其他程序资源,也可以共享这个session (如何确定是同一个用户?创建session时把sessionID以cookie的形式传给客户端,客户端访问时再把此sessionID传过去进行校验 JSESSIONID ) 二.session和cookie的区别 cookie 把用户的数据保存到浏览器端,sess

JavaWeb-09(HttpServletRequest对象&amp;会话管理之Cookie)

JAVAWEB-09:HttpServletRequest对象&会话管理之Cookie HttpServletRequest 一.HttpServletRequest对象: 代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息. 二.request常用方法 1.获得客户机信息 getRequestURL方法返回客户端发出请求时的完整URL. getRequestURI方法返回请求行中的资源名部分.

会话管理之Cookie技术

会话管理是web开发中比较重要的环节,这一节主要总结下会话管理中的cookie技术. 1. 何为会话 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称为一个会话. 1.1 会话过程中要解决的问题 1)每个用户在使用浏览器与服务器进行会话的过程中,不可避免会各自产生一些数据,程序要想办法为每个用户保存这些数据.        2)如:用户点击超链接通过一个servlet购买了一个商品,程序应该想办法保存用户购买的商品,以便于用于点结账serv

会话管理(Cookie/Session技术)

什么是会话:用户打开浏览器,点击多个超链接,访问服务器的多个web资源,然后关闭浏览器,整个过程就称为一个会话: 会话过程需要解决的问题:每个用户在使用浏览器与服务器进行会话的过程中,都可能会产生一些数据,这些输入如何来进行保存?比如用户在购物网站浏览的商品记录,用户添加购物车的记录等等这些信息如何进行存储?在程序中会话跟踪是一件非常重要的事情,一个用户的所有请求操作都应该属于同一个会话,而另一个人的所有请求操作应该属于另一个人,二者不能混淆!当想到需要在保存数据时,我们首先肯定会想到使用域对象

笔记 - 会话管理(cookie、session)

关于路径 /** * web应用中路径问题 * @author APPle * */ public class PathDemo extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8

会话管理:Cookie与Session技术

会话管理是web开发技术中用来跟踪用户并保持用户信息的技术.举一个例子,当用户在请求一个页面后,又接着请求了另外一个页面,这个时候,http是没有办法判断这两个请求是不是来自同一个用户,因为http协议是一个无状态协议,http协议没有办法维护两个事物之间的联系.这个时候就轮到会话管理华丽登场了. 会话管理有两种方式:一个是cookie,另一个是session.这两种会话方式又有什么不同呢?不着急,我们接下来就会分析二者的特点. cookie是服务器存放在用户计算机里面的数据,这些数据包括了我们

JavaWeb基础 - 会话

会话概述 什么是会话 简单的理解:用户打开浏览器,点击多个超链接,访问Web服务器上多个资源,然后关闭浏览器,整个过程称之为一次会话. 需要解决的问题 每个用户在使用浏览器与服务器会话的过程中,会产生一些用户数据,如用户登陆标记,WEB应用程序必须要为每个用户在一次或多次会话过程中保存这些数据. 两种技术 CookieCookie是客户端技术,WEB应用程序把每个用户数据以Cookie的形式发送给各自的的浏览器,当用户使用浏览器再次访问WEB应用时,就会带上这些Cookie,这样,WEB应用可以

java会话管理之Cookie基础(写着玩)

1. Cookie 存储在客户端 2. 创建cookie Cookie c = new Cookie("name", "value"); 3. 添加cookie response.addCookie(c); 4. 接收cookie Cookies[] cookies = request.getCookies(); 5. for循环遍历 if (cookies != null) { for (Cookie cookie : cookies) { String name

快速了解会话管理三剑客cookie、session和JWT

更多内容,欢迎关注微信公众号:全菜工程师小辉.公众号回复关键词,领取免费学习资料. 存储位置 三者都是应用在web中对http无状态协议的补充,达到状态保持的目的 cookie:cookie中的信息是以键值对的形式储存在浏览器中,而且在浏览器中可以直接看到数据.下图为safari的cookie截图: session:session存储在服务器中,然后发送一个cookie存储在浏览器中,cookie中存储的是session_id,之后每次请求服务器通过session_id可以获取对应的sessio