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,来区分不同客户端(区别浏览器,而不是不同窗口)    

  • 相关阅读:
    Java实现 洛谷 P1060 开心的金明
    (Java实现) 洛谷 P1605 迷宫
    (Java实现) 洛谷 P1605 迷宫
    (Java实现)洛谷 P1093 奖学金
    (Java实现)洛谷 P1093 奖学金
    Java实现 洛谷 P1064 金明的预算方案
    Java实现 洛谷 P1064 金明的预算方案
    (Java实现) 洛谷 P1031 均分纸牌
    QT树莓派交叉编译环开发环境搭建(附多个exe工具下载链接)
    武则天红人对唐睿宗的桃色报复(如此缺少城府,注定了要在宫廷中过早地出局)
  • 原文地址:https://www.cnblogs.com/adaonling/p/3536564.html
Copyright © 2011-2022 走看看