千锋教育

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 305|回复: 0

[郑州1903] 二阶段学习心得体会---Cookie和Session

[复制链接]

2

主题

4

帖子

21

积分

菜鸟

Rank: 1

发表于 19-5-24 17:30:09 | 显示全部楼层 |阅读模式
Cookie:
           原理:
        1. 服务器端创建Cookie对象
        2. 发送Cookie信息给浏览器
                在响应头中set-cookie:Key=value
        3. 浏览器得到Cookie并且保存在本地
        4. 浏览器下一次访问WEB应用,这里会自动带有对应WEB应用的Cookie信息发送到服务器端
                Cookie:key=value
        5. 服务器接收到Cookie,用于验证


Session
        Session使用需要依赖于Cookie

服务器端会对每一个浏览器生成一个唯一的SessionID,创建对应的session'对象,在浏览器中使用Cookie保存对应的SessionID,

浏览器访问WEB资源时,会带有Cookie信息,使用SessionID进行身份验证

原理:
        1. 创建Session对象
        2. 把SessionID以Cookie形式发送给浏览器保存
        3. 浏览器下一次方法会带有Cookie访问服务器,验证SessionID
        4. 服务器接受到SessionID之后,验证当前服务器当中是否存在对应的SessionID就可以捕获,判断对应Cookie是否有效
       
Cookie的用法:建立在servlet里面
     
        public void cookie1(HttpServletRequest request, HttpServletResponse response) {      
        // 1. 创建Cookie对象                                                                  
        Cookie cookie = new Cookie("name", "Anonymous");                                 
                                                                                          
        // 2. 添加Cookie对象到response对象中                                                      
        response.addCookie(cookie);                                                      
                                                                                          
        // 3. 浏览器再次访问,服务器可以获取到对应的Cookie信息                                                
        Cookie[] cookies = request.getCookies();                                          
        if (cookie != null) {                                                            
                for (Cookie cookie2 : cookies) {                                             
                        System.out.println(cookie2.getName());                                    
                        System.out.println(cookie2.getValue());                                   
                }                                                                             
        }                                                                                 
}                                                                                    
                                                                                      
public void cookieTime(HttpServletRequest request, HttpServletResponse response) {   
        Cookie cookie = new Cookie("name", "lisi");                                       
        // 这里是设置Cookie的有效时间                                                               
        // cookie.setMaxAge(30);                                                         
        // 同名Cookie设置有效时间为0,表示删除当前Cookie信息                                                
        // cookie.setMaxAge(0);                                                           
                                                                                          
        // 设计Cookie有效时间为-1.表示当前Cookie信息有且只能在浏览器当前状态下使用                                 

  
        // 如果浏览器退出,Cookie销毁,可以认为是一个临时Cookie                                               
        cookie.setMaxAge(-1);                                                            
                                                                                          
        response.addCookie(cookie);                                                      
}                                                                                    
                                                                                      
public void cookiePath(HttpServletRequest request, HttpServletResponse response) {   
        // 设置当前Cookie的有效路径范围                                                              
        // 实现Cookie可以传递到另一个WEB应用                                                         
        Cookie cookie = new Cookie("name", "骚杰");                                         
                                                                                          
        // 设置当前Cookie作用范围是Day23_SL项目中                                                     
        cookie.setPath("/Day23_SL");                                                      
                                                                                          
        cookie.setMaxAge(60 * 10);                                                        
                                                                                          
        response.addCookie(cookie);                                                      
}  


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

订阅|小黑屋|手机版|千锋教育论坛 ( 京ICP备12003911号-3

GMT+8, 19-6-20 05:50 , Processed in 0.327246 second(s), 38 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表