• cookie技术和Session技术(服务器)


    cookie技术是客户端
    cookie技术是一个打开浏览器访问某个站点(网页等),到关闭相关浏览器成功之间的一个会话。
    他也就是字面意义上的缓存。
    它是面向客户端的一个技术。
    重点是服务器如何将cookie发送到客户端,
    服务器如何接受客户端携带的cookie。
    服务器→客户端cookie(响应头发送)

    它的操作:
    创建对象
    Cookie cookie =new Cookie(“name”,“iPhone 11”); 键值对方式。不可以存中文。
    cookie.setMaxAge(60*2);设置cookie在客户端的存取时间。
    设置cookie的携带路径,也就是只有访问规定的路径的时候才能访问成功。
    cookie.setPath("/WEB05");访问包下的所有都可以
    cookie.setPath("WEB05/SendCookidServlet");访问固定路径
    cookie.setPath("/");访问所有的资源路径
    如果不写的话可以访问该cookie的所有可携带路径

    Cookie不能存储中文

    //获取session对象
            HttpSession session=request.getSession();
            //向session域中赋值
            session.setAttribute("name", "花开不纪年");
            //获取当前JSESSIONID------为了不让浏览器关了就没有,用同名的cookie对象替代一次会话结束就消失的cookie对象。
            String id=session.getId();
            //创建cookie对象
            Cookie cookie=new Cookie("JSESSIONID",id);
            //设置持久化时间
            cookie.setMaxAge(60*2);
            //设置携带路径
            cookie.setPath("/WEB06");
            //发送cookie
            response.addCookie(cookie);

    cookie因为是客户端,所以它是

    向客户端发送cookie
    response.addCookie(cookie);

    如果想要删除cookie就是顶一个一个同名的持久化cookie来进行覆盖。
    Session技术(服务器)
    它相当于起一个中转的作用,同时它还是一个域。

    //获取当前请求客户端的session对象,只要不关闭浏览器,就用的是一个session
            HttpSession session=request.getSession();

    setAttribute(name,value);
    getAttribute(name);

    后面用的非常之多。

        request.setCharacterEncoding("UTF-8");
            List<Fuwu> list=fuwuService.getZixun();
            request.setAttribute("GetFuwu", list);
            request.getRequestDispatcher("/right.jsp").forward(request, response);
    如这里就是获取到service层的方法,然后将其集合存储到session域中,并且请求转发到right.jsp文件,jsp文件就可以通过域名,来循环遍历域中值。

    它的流程是当客户端请求服务器时,Session域调用HttpSession session=request.getSession();
    给每一个请求的对象都创一个session域,并且获得JSEESIONID响应给客户端。
    然后客户端就可以拿着JESSSIONID用Cookie再去请求结算,服务器拿着id去session域寻找,完成后SET-Cookie响应给客户端信息。 注意:一次响应结束,因为cookie一次会话结束的技术不会再响应,如果重新获取的请求需要创建新的域。


    如果不想关闭浏览器重新创建session,需要用cookie技术的同名同路径持久化时间设置的长一些。
    生命周期时候调用request.getSession时创建。

    创建时机

      1:这个浏览器在servlet中第一次使用session的时候会创建;

      2:这个浏览器第一次访问jsp的时候,服务器也会为这个浏览器创建一个session对象;

    2:销毁时机

      1:程序员调用invalidate方法;(立刻销毁)

      2:设置的存活时间到了;(默认是30分钟)

      3:服务器非正常关闭;(突然断电)
    30分钟结束或者关闭浏览器。
    学习了携带web层的登录验证和验证码校验,区别是web层代替cotroller+view层

  • 相关阅读:
    混合开发的坑(3) ---关于es6
    混合开发的坑(2) ---pdf展示
    混合开发的坑(1) ---ajax请求
    vue.js
    vue中 import引入组件
    vue中 静态文件引用注意事项
    Oracle 数据库链接
    Oracle中的NVL,NVL2,NULLIF以及COALESCE函数使用
    Merge into 使用
    C# —— IList, ArrayList与List的区别详解
  • 原文地址:https://www.cnblogs.com/a199706/p/11603370.html
Copyright © 2020-2023  润新知