zoukankan      html  css  js  c++  java
  • 浏览器、服务器会话

    置顶

    1. 注意事项
      • 只能在同一个浏览器创建,同一个浏览器代表同一次会话。比如说你在Chrome中请求了创建Cookie接口,然后你在Firefox中请求遍历Cooke接口,就拿不到。
    2. 会话技术
      • 什么是会话?
        • 一次会话中包含多次的请求和相应。
      • 一次会话?
        • 浏览器第一次给服务器资源发送请求,建立会话。
      • 会话结束?
        • 直到有一方断开,(关闭浏览器 || 关闭服务器)。
      • 会话的功能?
        • 在一次会话范围内的多次请求之间,共享数据。
      • 共享数据的方式,Java中包含两种会话技术。
        • Cookie【客户端】
        • Session 【服务器端】

    1. JSP学习
    1. 概念
      • 客户端会话技术,将数据保存至客户端。

    1. 快速入门,创建Cookie对象,请求URL:talk/JinLuLu
      • 响应头(Response Headers)返回,Set-Cookie: msg=JinLuLu

    @RequestMapping("/JinLuLu")
    public String pasha(HttpServletRequest request, HttpServletResponse response) throws Exception {
    	// 1.创建Cookie对象
    	Cookie cookie = new Cookie("msg", "JinLuLu");
    	// 2.发送Cookie对象
    	response.addCookie(cookie);
    	return "创建cookie对象";
    }
    

    1. 快速入门,遍历拿到Cookie对象,请求URL:talk/YuYaoYao
      • 请求头(Request Headers)装载,Cookie: msg=JinLuLu

    public String YuYaoYao(HttpServletRequest request, HttpServletResponse response) throws Exception {
    	// 3.遍历拿到Cookie对象
    	if (null != request.getCookies()) {
    		Arrays.stream(request.getCookies()).forEach(item -> System.out.println("Name: " + item.getName() + ", Value: " + item.getValue()));
    	} else {
    		System.out.println("Cookie数组为空");
    	}
    	return "遍历cookie对象";
    }
    

    1. 导师田斌讲解:响应头、请求头


    1. 实现原理
      • 基于响应头Set-Cookie请求头Cookie实现。

    1. Cookie细节
      • 一次可不可以发送多个Cookie呢?
        • 可以
        • 可以创建多个Cookie对象,调用response.addCookie进行保存。
      • Cookie在浏览器中保存多长时间?
        • 默认情况下,Cookie保存在浏览器的内存中,当浏览器关闭,Cookie自动销毁。
        • 一般情况下,我们都希望在浏览器关闭的情况下,也保存Cookie信息;这里有持久化存储解决方案
          • setMaxAge(int 秒数)
            • 整数:将Cookie数据写到硬盘的文件中,持久化储存,Cookie存活时间以秒为单位。
            • 负数:代表默认情况。
            • 零:删除Cookie信息。
      • Cookie能不能存储中文?
        • Tomcat8之前不能直接设置中文,Tomcat8之后Cookie支持中文。
        • SpringBoot自动集成Tomcat8。
      • Cookie共享问题?
        • 假设在一个Tomcat服务器中,部署了多个Web项目,那么在这些Web项目中Cookie能不能共享?
          • 默认情况下不能共享!
          • 想要实现共享调用
            • Cookie创建的时候,调用cookie.setPath("/");方法
            • 代表http://localhost:8888/ ,斜杠下所有的Web服务共享Cookie。
        • 不同服务器,Cookie是否可以共享?
          • 举例:百度、百度贴吧、百度新闻。
          • 怎么实现,使用共享域名实现?
            • news.baidu.com、tieba.baidu.com
            • 一级域名:baidu.com
            • 二级域名:news、tieba
          • 实现
            • setDomain(String path);如果设置一级域名相同。那么多个服务器之间Cookie可以共享!
            • cookie.setDomain(".baidu.com"),那么tieba.baidu.com、news .baidu.com中Cookie可以共享!

    1. Cookie的特点和作用?
      • Cookie存储数据在客户端浏览器、不太安全,易丢失、易篡改。
      • 浏览器对于单个Cookie的大小有限制(4kb)以及对同一个域名下的总Cookie数量也有限制(20个)。
      • 作用
        • Cookie一般用于存储少量的不太敏感的数据。
        • 在不登录的情况下,完成服务器对客户端的身份识别。
  • 相关阅读:
    Agile方法
    电子书下载:Beginning Nokia Apps Development: Using MeeGo, Mobile QT and OpenSymbian
    电子书下载:Pro Oracle SQL
    电子书下载:Algorithms of the Intelligent Web
    BlogEngine .NET 日期控件显示问题
    电子书下载:Beginning JavaScript, 4th Edition
    电子书下载:Sams Teach Yourself iPhone Application Development in 24 Hours, 2nd Edition
    电子书下载:Pro ASP.NET 4 in VB 2010, 3rd Edition
    电子书下载:MCTS SelfPaced Training Kit (Exam 70515): Web Applications Development with Microsoft .NET Framework 4
    电子书下载:Unity 3D Game Development by Example: Beginner’s Guide
  • 原文地址:https://www.cnblogs.com/Twittery/p/15132565.html
Copyright © 2011-2022 走看看