zoukankan      html  css  js  c++  java
  • JavaEE复习三

    Http协议是基于请求/响应模式、无状态的协议;所有请求时相互独立的、无连续的;服务器无法记住与识别用户。

    对于简单的页面浏览或信息获取,http协议可以完全胜任;对于需要提供客户端和服务器端交互的网络应用则必须记住客户端状态。

    会话就是一个连续不断的在在客户端和服务器端进行请求响应的一系列交互。

    会话跟踪就是在这些请求和响应中维护需要的数据信息,使得这些相关的请求和响应得到正确的运作。

    会话的实现过程:

    1.   当服务器端接收到客户端的首次请求时,服务器初始化一个会话并分配给该会话一个唯一标识符
    2. 在以后的请求中,客户端必须将唯一标识符包在请求中,服务器根据此标识符将请求与对应的会话联系起来。

    实现会话跟踪的技术:

    1. 使用Cookie:所有的Http消息,不管是请求还是响应均包含头信息,由浏览器存储在客户端机器上的头信息就称作Cookie,以“属性=属性值;..”方式组成的文本信息;优点:简单性、基于文本的key-value对
      1. 创建Cookie : //Cookie c =new Cookie("userId","a1234");
      2. 设置最大时效:c.setMaxAge(60*60*24*7);
      3. 把cookie放入到http响应中:response.addCookie(c);
      4. 从客户端读取cookie:Cookie[] cookies=request.getCookies();   if(cookies!=null){for(int i =0;i<cookies.length;i++){Cookie cookie =cookies[i]; if(cookieName.equals(cookie.getName())){//do something with(codeValue)}}}
      5. cookie的属性:
        1. getMaxAge(); //设置cookie到期时间
        2. getName(); //读取cookie的名称
        3. getValue(); //读取/设置与cookie关联的值
    2. URL重写:
      1. 优点:必须对所有指向您的网站的url进行编码;所有页面必须动态生成;不能使用预先记录下来的url进行访问
      2. 缺点:cookie被禁用或者根本不支持的情况下依旧能够功能
    3. 隐藏的表单域
      1. <input type="hidden" name="session" value="..."/>
      2. 优点:cookie被禁用或者根本不支持的情况下依旧能够工作。
      3. 缺点:所有的页面必须是表单提交之后的结果。
      4. 会话对象生存于服务器上;会话自动通过cookie或url重写与客户关联起来,允许我们将任何对象存储到会话中
    4. HttpSession
      1. servlet容器提供httpsession接口来代表客户端和服务器端的会话;当一个Servlet容器为客户端开始一个会话时,创建一个新的HttpSession对象,除了代表会话外,httpSession对象还可以用于存储与会话相关的信息
      2. httpSession会话跟踪基础:
          1. 访问会话对象,request.getSession();
          2. getAttribute
          3. setAttribute
          4. removeAttribute,invalidate

    会话失效:

      通过web.xml的<session-timeout>,由程序来结束会话httpSession接口提供了invalidate()

    一个入行不久的Java开发,越学习越感觉知识太多,自身了解太少,只能不断追寻
  • 相关阅读:
    设计模式之单例模式
    SpringBoot与mongodb的结合
    Spring boot整合Swagger
    阿里巴巴规约没有注意的点
    利用Maven插件将依赖包、jar/war包及配置文件输出到指定目录
    Spring注解开发-全面解析常用注解使用方法之生命周期
    描述 Vue 组件生命周期(有父子组件的情况)
    vue单页面,多路由,前进刷新,后退不刷新
    element ui el-upload上传组件时session丢失问题
    实现uni-app 通讯录按照字母排序 的pinyin.js
  • 原文地址:https://www.cnblogs.com/fengtingxin/p/6007805.html
Copyright © 2011-2022 走看看