zoukankan      html  css  js  c++  java
  • Cookie,Session基础知识

    //这部分主要是CookieSession的笔记部分
        
    /*
     * //获取来访的客户端类型
            String clientTye=req.getHeader("User-Agent");
            
            //如果是火狐浏览器,那么使用以下代码
            if(clientTye.contains("Firefox")){
                fileName=DownLoadUtil.base64EncodeFileName(fileName);
            }else{
                //IE,或者是谷歌浏览器
                //对中文的名字进行编码处理
                fileName=URLEncoder.encode(fileName,"UTF-8");
            }
     */
        
        
        //DownLoadUtil部分是Base64的代码部分。如下
        /*
         * //Base4加密解密方式
        public class DownLoadUtil {
        public static String base64EncodeFileName(String fileName) {
            BASE64Encoder base64Encoder = new BASE64Encoder();
            try {
                return "=?UTF-8?B?"
                        + new String(base64Encoder.encode(fileName
                                .getBytes("UTF-8"))) + "?=";
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
    }
         */
        
        
        
        
        //重定向问题的两种写法
        //1.早期写法:
        /*设置状态码?重新定位状态码
        resp.setStatus(302);
        定位跳转的位置是哪一个页面
        resp.setHeader("location","sucess-login.html");
        
        2.直接跳转的写法
        跳转到成功的界面
        resp.sendRedirect("sucess-login.html");*/
        
        
        
    /*######请求转发的问题
     * //请求转发的写法:
       //req.getRequestDispatcher("sucess-login.html").forward(req, resp);
     */
        
        
    /*
     * ###Cookie学习笔记
     * 直译饼干的意思,其实是一份小数据,是服务器给客户端的,并且存在客户端上的一份小数据    
     * 
     * 应用场景:自动登录,浏览记录,购物车
     * 
     * ###为什么要有这个Cookie?
     * http的请求是无状态。客户端与服务器在通讯的时候,是无状态的,其实就是客户端在第二次来访的时候,服务器根本不知道
     * 这个客户端以前有没有来访问过。为了更好的用户体验,更好的交互。
     * 其实从公司层面讲,就是为了更好的收集客户信息
     * 
     * 
     * ###Cookie怎么用?
     * 创建CookieDemo01
     *         添加Cookie给客户
     *           1.在响应的时候,添加Cookie
     *             Cookie cookie=new Cookie("name", "zyz");
     *             给响应添加一个cookie
     *             resp.addCookie(cookie);
     *         
     *          2客户端收到的信息里面,响应头中多了一个字段Set-Cookie
     * 
     * 
     * 
     *###获取客户端带过来的Cookie
     *        //获取客户端带过来的cookie
                Cookie[] cookies=req.getCookies();
                if(cookies!=null){
                    for(Cookie c:cookies){
                        String cookieName=c.getName();
                        String cookieValue=c.getValue();
                        System.out.println(cookieName+"=="+cookieValue);
                    }
                }
    
    ###cookie的有效期,
    默认情况下,关闭浏览器后,Cookie就没有了。
    
    expiry:有效----------->有效值以秒计算
    正值:表示在这个数字之后,cookie将会失效
    负值,表示关闭浏览器,那么cookie就会失效,默认是值是-1
    
    
    
    ####常用方法
    //设置Cookie的周期
                cookie.setMaxAge(60);
                
                //赋值新的值
                //cookie.setValue(newValue);
                
                //用于指定只有请求了指定的域名,才会带上该cookie
                //cookie.setDomain("");
                
                //只有访问该域名下的cookieDemo的这个路径地址才会带cookie
                //cookie.setPath("/cookieDemo");
    
    
    
    ###例子---->显示最近访问的时间
    获取带过来的cookie
        1.没有cookie
             第一次登录
               1输出登录成功或者失败
               2给客户端添加cookie
                     new Cookie("last",时间)
         2有cookie
             第二次登录
               1.输出成功或者失败
               2获取以前的cookie
    
    
    #####Cookie的安全问题
    由于Cookie会保存在客户端上,所以有安全隐患问题,还有一个问题,Cookie的大小与个数有限制,
    为了解决问题------->Session
    
    
    
    ####Session
    会话,Session是给予Cookie的一种会话机制,Cookie是服务器返回一小份数据给客户端,并且
    存放在客户端上,Session是,数据存放在服务器端。
    
    
    ####Session常用的API
    
        //获得会话
          HttpSession session=req.getSession();
          //得到会话的id
          String id=session.getId();
          //存值
          session.setAttribute("name","value");
          //取值
          session.getAttribute("name");
          //移除值
          session.removeAttribute("name");
    
    
    ###Session的创建和销毁
    
    创建
    如果有在Servlet里面调用了request.getSession()
    
    销毁
    Session是存放在服务器的内存中的一份数据,当然可以持久化,Redis.即使关了浏览器,Session也不会销毁
    
    销毁方法
        1关闭服务器
         
        2 Session会话时间结束,默认有效期30分钟
    
     */
        
    一纸高中万里风,寒窗读破华堂空。 莫道长安花看尽,由来枝叶几相同?
  • 相关阅读:
    asp.net BS拖拽工作流设计及研发(附Demo源码)
    分享NOSQL开发实战
    jQuery插件开发实战
    asp.net搜索引擎(网络爬虫)设计及研发
    asp.net 统一认证及单点登录平台解决方案系列<一>
    ubuntu安装python的psycopg2库时报错
    记一次工作中的小坑(关于celery)
    ssh错误 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    使用nobody运行redis
    安装python图像处理库PIL
  • 原文地址:https://www.cnblogs.com/byczyz/p/11337492.html
Copyright © 2011-2022 走看看