zoukankan      html  css  js  c++  java
  • servlet同一用户的不同页面共享数据

    一.cookie技术

      cookie的讲解和使用
      ---------------
      服务器在客户端保存用户的信息,比如登录名,密码等...就是cookie,
      服务器端在需要时可以从客户端读取。
      cookie可以用来做什么?
          1、保存用户名,密码,在一定时间可以不用重新登录等
          2、记录用户访问网站的喜好
          3、网站的个性化
      cookie使用?
          1、cookie像一张表,分两列,名字和值,数据类型都是String
          2、如何创建一个Cookie(在服务端创建的)
             Cookie c=new Cookie(String name,String val);
          3、设置cookie存在时间
             c.setMaxAge(int time);
             以秒计时,如果为正数,则保存,负数则不保存,0则删除该cookie
             不设置存在时间,cookie将不会保存
          4、如何讲一个Cookie添加到客户端
             response.addCookie(c);
          5、如何读取cookie(从客户端读取到服务器端)
             request.getCookies();
      cookie与session区别
        1.存在的位置
           cookie在客户端,session在服务器端
        2.安全性
           cookie安全性较弱
        3.网络传输
           cookie在服务器与客户端传输,session在服务器端,不需要传输
        4.声明周期
           cookie生命周期是累计的,从创建时就开始计时
           session生命周期是间隔的,创建时,开始计时,在20分钟之内没有访问session,那么session信息无效,如果在20分钟内,比如第19分访问,那么重新开始计时
           关机会让session结束,但是cookie不会受影响

    二.sendRedirect()转向  

        通过该方法可以将信息传递  

        例如:sendRedirect("welcome?username=XXX");    

        1.welcome代表要跳转的servlet的url    

        2.问号间隔    

        3.传递两个以上的值,要用&号分开    例如sendRedirect("welcome?username=xxx&pass=xxx")   

        4.如果传递的是中文,将得到乱码,需要处理   

        注意:参数名不对应,值则为null  

        优点:传送速度快        缺点:只能传送字符串,不能传送对象

        ps:sendRedirect()会在地址栏留下传递参数的信息

                     所以,要求安全性高的话还是借助session或者信息加密传递后再解密等

    三.隐藏表单   

      最常见的一种方式,也是最简单的,但有时该技巧非常管用,形如:  

         <form action=login>   

          <input type=hidden name=a value=b>   

        </form>

    四.session技术

         1:网上商城购物车  

       2:保存用户的信息  

         3:将某些数据放入session,供同一用户的各个页面使用  

       4:防止用户非法登录到某个页面、、、、、、  

         session每个属性包含两个方面:名字(String)和对应的值(Object)  

        得到session:  HttpSession ses=request.getSession(true);  

        向session添加属性:  ses.setAttribute(String name,Object val);  

                    //其中name是属性名称,val是属性的值

        从session获得某个属性:  String val=ses.getAttribute(String name);  

        从session删除某个属性:  ses.removeAttribute(String name);//根据属性名称

        修改session的时间:ses.setMaxInactiveInterval(20);//按秒来计算,负值永远不超时

         session中属性存在的时间默认30min(不动的时间,也就是不操作session的间隔时间,不是累计时间),也可以修改:     

                      1、修改web.xml    

                      2、在程序中修改  

         浏览器访问网站时,服务器会给浏览器分配唯一的session id,来区分不同客户端(区别浏览器,而不是不同窗口)  

  • 相关阅读:
    Linux w命令
    01.drf文档及外键字段反序列化
    redis的参数解释
    redis集群复制和故障转移
    codis原理及部署_01
    redis 主从哨兵02
    redis 主从哨兵01
    redis持久化
    redis python操作
    redis cluster
  • 原文地址:https://www.cnblogs.com/ScvQ/p/6957199.html
Copyright © 2011-2022 走看看