zoukankan      html  css  js  c++  java
  • Cookie、Session

    一、Cookie
    1.为什么要使用Cookie?
        Cookie是将用户的数据以文本的形式保存在了本地。可以做到简化登录。但缺点在于无法保障数据的安全
    2.如何使用Cookie?
        a.导入Cookie包。javax.servlet.http.Cookie
        b.创建Cookie:  Cookie cookie = new Cookie("","");
                  参数说明:创建只有这一种形式,第一个参数为Cookie名称,第二个参数为Cookie的具体值。
                  注意:Cookie值只能是String类型
        c.写入Cookie:response.addCookie(创建的Cookie对象);
        d.Cookie常用的方法:
                setMaxAge();设置Cookie的最大有效时间。以秒为单位。
                getName():用来获取Cookie的名称,
                getValue():获取Cookie中保存的数据值。
                setValue();设置Cookie要保存的数据值
                getMaxAge():获取Cookie的最大有效时间
    3.Cookie在实战中用在哪?
         a.简化登录。在用户第一次登录成功以后,要用户的用户名放入Cookie,设置最大有效时间,这样就可以做到在有效时间
                    内免登录的效果。
         b.在电商软件中,将用户访问过的商品信息,放入Cookie,可以方便用户回顾浏览的历史。
          c.在有效时间范围内,也可以做到用户倒链访问某个页面
     
    二、Session:
    1.为什么要使用session?
      Session:使用用来对用户访问的控制与回话跟踪。(回话:request,以及response)
    2.如何使用Session?
        a.创建Session:HttpSession session = request.getSession();
        b.将需要在每个页面中要使用的数据放入到session作用域中。:session.setAttribute(key,value);
          参数解释:key是要获取session中数据的标识,只能是String类型
                   value:是Object类型
           
         c.常用的方法:
           1.setAttribute()
           2.getAttribute("");返回Object类型。通过参数名称获取与其指向的数据
           3.getMaxInactiveInterval();设置Session的最大有效性,单位:秒
           4.invalidate():销毁当前的session。这个方法往往用在系统用户登出。(实战中写完此方法,还要将对象赋值为null)
           5.getId():获取当前session的Id编号。
    3.在哪使用Session?
         因为session的作用在浏览器,所以不便于将大量的数据集合放入session。
         一般会在用户登录成功后,将用户的名放入session。
         在当前浏览器未关闭时,也可以做到防止用户倒链的情况发生,比建议用它实现免登录,无意义。

    三、案例

     1 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     2         //设置字符编码集
     3         request.setCharacterEncoding("UTF-8");
     4         response.setCharacterEncoding("UTF-8");
     5         //获取用户提交请求校验的信息
     6         String name=request.getParameter("name");
     7         String pwd=request.getParameter("pwd");
     8         
     9         //接收校验后返回的结果
    10         String poname=petOwnerBiz.searchPetOwnerBynamepwd(name, pwd);
    11         if(null!=poname) {
    12             //创建Cookie
    13             Cookie cookie = new Cookie("poname",poname);
    14             //设置Cookie的最大有效性    秒
    15             cookie.setMaxAge(300);
    16             //写入Cookie
    17             response.addCookie(cookie);
    18             HttpSession session=request.getSession();
    19             session.setAttribute("poname", poname);
    20             response.sendRedirect("main.jsp");
    21             
    22         }
    23     }
     1 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     2         /*
     3          * 获取保存的Cookie,从该Cookie中获取保存的用户登录信息
     4          * 如果存在将信息保存在session/request作用域重定向或转发到某个servlet,或页面
     5          * 如果没有信息,则直接重定向到登录界面
     6          */
     7         //获取本地的Cookie
     8         Cookie[] cookies = request.getCookies();
     9         String poname=null;
    10         //循环Cookie数组,找到需要的cookie对象,拿到用户保存的登录信息
    11         for(int i=0;i<cookies.length;i++) {
    12             Cookie cookie=cookies[i];
    13             if("poname".equals(cookie.getName())) {
    14                 poname=cookie.getValue();
    15                 break;
    16             }
    17         }
    18         if(null!=poname) {
    19             HttpSession session=request.getSession();
    20             session.setAttribute("poname", poname);
    21             response.sendRedirect("main.jsp");
    22             return;
    23         }
    24         response.sendRedirect("login.jsp");
    25         
    26     }
     1 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     2         //设置字符编码集
     3                 request.setCharacterEncoding("UTF-8");
     4                 response.setCharacterEncoding("UTF-8");
     5                 //获取用户提交请求校验的信息
     6                 String name=request.getParameter("name");
     7                 String pwd=request.getParameter("pwd");
     8                 
     9                 //接收校验后返回的结果
    10                 String poname=petOwnerBiz.searchPetOwnerBynamepwd(name, pwd);
    11                 if(null!=poname) {
    12                     
    13                     HttpSession session=request.getSession();
    14                     session.setAttribute("poname", poname);
    15                     response.sendRedirect("main.jsp");
    16                     //return;
    17                  }else {
    18                      response.sendRedirect("login2.jsp");
    19                  }
    20 
    21          }
    年轻人能为世界年轻人能为世界做些什么
  • 相关阅读:
    Return Largest Numbers in Arrays-freecodecamp算法题目
    Title Case a Sentence-freecodecamp算法题目
    Find the Longest Word in a String-freecodecamp算法题目
    Check for Palindromes-freecodecamp算法题目
    Factorialize a Number-freecodecamp算法题目
    Reverse a String-freecodecamp算法题目
    js拖动div
    Jquery $.ajax()方法详解
    jQuery中$.each()方法的使用
    echarts的pie图中,各区块颜色的调整
  • 原文地址:https://www.cnblogs.com/twinkle-star/p/9462932.html
Copyright © 2011-2022 走看看