zoukankan      html  css  js  c++  java
  • JavaWeb_Cookie

    会话和会话状态

    WEB应用中的会话是指一个客户端浏览器与WEB服务器之间连续发生的一系列请求和响应过程。

    WEB应用的会话状态是指WEB服务器与浏览器在会话过程中产生的状态信息,借助会话状态,WEB服务器能够把属于同一会话中的一系列的请求和响应过程关联起来。

    如何实现有状态的会话:

    需要浏览器对其发送出每个请求消息都进行标识(并且附带标识号称之为会话ID(SessionID)

    Cookie机制

    • cookie机制采用的是在客户端保持HTTP状态信息的方案
    • Cookie是在浏览器访问WEB服务器的某个资源时,由WEB服务器在HTTP响应消息头中附带传送给浏览器的一个小文本文件。
    • 一旦WEB浏览器保存了某个Cookie,那么他在以后每次访问该WEB服务器时,都会在HTTP请求头中将这个Cookie回传给WEB服务器。
    • 底层实现原理:WEB服务器通过在HTTP响应消息中增加Set-Cookie响应投资段将Cookie信息发送给浏览器,浏览器则通过在HTTP请求消息中增加Cookie请求头字段将Cookie回传给WEB服务器。 

    在Servlet程序中使用Cookie

    • Servlet API中提供了一个javax.servlet.http.Cookie类来封装Cookie信息,它包含有生成Cookie信息和提取Cookie信息的各个属性的方法。
    • Cookie类的方法:
      •   构造方法:public Cookie (String name,String value)
      •        getName()方法
      •        setValue()与getValue()方法
      •        setMaxAge与getMaxAge方法
      •        setPath与getPath方法
    • HttpServletResponse接口中定义了一个addCookie方法,它用于在发送给浏览器的HTTP响应消息中增加一个Set-Cookie响应头字段
    • HttpServletResponse接口中定义了一个getCookie方法,它用于从HTTP请求消息的Cookie请求头字段中读取所有的Cookie项。
        <%
            //在JavaWeb规范中使用Cookie类代表Cookie
    
            //1.创建一个Cookie对象
            Cookie cookie = new Cookie("yang","yhs");
            //2.调用response的一个方法把Cookie传给客户端
            response.addCookie(cookie);
    
        %>
    

      

     <%
    
            //1.获取Cookie
            Cookie [] cookies = request.getCookies();
            response.setContentType("charset=UTF-8");
            if (cookies!=null&&cookies.length>0){
                for (Cookie cookie : cookies){
                    out.print(cookie.getName() + ":" + cookie.getValue());
                    out.print("<br>");
                }
            }else{
                out.print("没有一个Cookie,正在创建并返回");
                //在JavaWeb规范中使用Cookie类代表Cookie
    
                //1.创建一个Cookie对象
                Cookie cookie = new Cookie("yang","yhs");
                //2.调用response的一个方法把Cookie传给客户端
                response.addCookie(cookie);
    
            }
        %>
    

      

     Cookie的发送

    1.创建Cookie对象

    2.设置最大时效

    3.将Cookie放入到HTTP响应报头

    •  如果创建一个Cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie,存储在浏览器的内存中,用户退出浏览器之后被删除。若希望浏览器将该cookie存储在磁盘上,则需奥使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。 

    setMaxAge:设置Cookie的最大时效,以秒为单位,若为0,表示立即删除该Cookie

    若为负数,表示不存储该Cookie,若为正数,表示该Cookie的存储时间。

  • 相关阅读:
    CSS语言
    HTML语言
    JDBC技术
    存储过程
    Oracle和Mysql数据库技术
    正则表达式
    反射
    XML技术
    设计模式初步专题(自学,适合初级.更深入的会在框架阶段)
    线程池专题(自学)
  • 原文地址:https://www.cnblogs.com/yangHS/p/11151683.html
Copyright © 2011-2022 走看看