session对象

【摘自大型网站技术架构书】负载均衡时session如何共享

感情迁移 提交于 2020-01-16 00:16:35
由于负载均衡服务器可能会将请求分发到集群任何一台服务器上,所以保证每次请求能够获得正确的session比单机时复杂。 集群环境下,session管理的主要几种手段 1.session复制 session复制是早期的企业级的使用比较多的一种服务器集群session管理机制。应用服务器开启web容器的session复制功能,在集群中的几台服务器之间同步session对象,使得每台服务器上都保存所有的session信息,这样任何一台宕机都不会导致session的数据丢失,服务器使用session时,直接从本地获取。 这种方式在应用集群达到数千台的时候,就会出现瓶颈,每台都需要备份session,出现内存不够用的情况。 2.session绑定 利用hash算法,比如nginx的ip_hash,使得同一个Ip的请求分发到同一台服务器上。 这种方式不符合对系统的高可用要求,因为一旦某台服务器宕机,那么该机器上的session也就不复存在了,用户请求切换到其他机器后么有session,无法完成业务处理。 3.利用cookie记录session(最普遍的做法) session记录在客户端,每次请求服务器的时候,将session放在请求中发送给服务器,服务器处理完请求后再将修改后的session响应给客户端。这里的客户端就是cookie。 利用cookie记录session的也有缺点

深入剖析Android音频之AudioTrack

你离开我真会死。 提交于 2020-01-15 07:20:43
原文: https://www.cnblogs.com/mfmdaoyou/p/7348969.html 深入剖析Android音频之AudioTrack 播放声音能够用MediaPlayer和AudioTrack,两者都提供了java API供应用开发人员使用。尽管都能够播放声音。但两者还是有非常大的差别的。当中最大的差别是MediaPlayer能够播放多种格式的声音文件。比如MP3。AAC,WAV,OGG。MIDI等。 MediaPlayer会在framework层创建相应的音频解码器。而AudioTrack仅仅能播放已经解码的PCM流,假设是文件的话仅仅支持wav格式的音频文件,由于wav格式的音频文件大部分都是PCM流。AudioTrack不创建解码器。所以仅仅能播放不须要解码的wav文件。 当然两者之间还是有紧密的联系,MediaPlayer在framework层还是会创建AudioTrack,把解码后的PCM数流传递给AudioTrack。AudioTrack再传递给AudioFlinger进行混音,然后才传递给硬件播放,所以是MediaPlayer包括了AudioTrack。使用AudioTrack播放音乐演示样例: AudioTrack audio = new AudioTrack( AudioManager.STREAM_MUSIC, // 指定流的类型

shiro框架中获取username、ip等信息

寵の児 提交于 2020-01-14 14:47:46
  private String getUsername() { Object principal = SecurityUtils.getSubject().getPrincipal(); return principal.toString(); } private String getIp(){ Subject subject = SecurityUtils.getSubject(); String host = subject.getSession().getHost(); return host; } 通过这两个方法,可以预见,基本上所有的信息都可以在SecurityUtils.getSubject()中获取到; 以下是从别的文章中看到的: 当获取用户名的时候,是自己登录时放入session的吧,正确是SecurityUtils.getSubject().getPrincipal();就是你的realms内doGetAuthenticationInfo时new SimpleAuthenticationInfo的第一个构造参数,直接放user对象就行了 ; 以下为转载的文章:关于shiro中的session 在安全框领域,Apache Shiro 提供了一个独一无二的东西:一个完整的企业级Session 解决方案,从最简单的命令行及智能手机应用到最大的集群企业Web 应用程序

如何获取Session对象中的对象

半世苍凉 提交于 2020-01-14 09:58:53
先调用request的getSession()方法获取一个HttpSession的对象,然后将这个对象进行强制类型转换成原本封装的对象,这样就能获取Session对象中的对象了 1、调用request的getSession()方法 HttpSession session = request.getSession(); 2、强制类型转换 User user = (User) session.getAttribute("session_user"); Session注销后,浏览器后退仍显示Session信息的解决方案: https://www.cnblogs.com/windowsxpxp/p/12190343.html 来源: https://www.cnblogs.com/windowsxpxp/p/12190262.html

Django之Session与Cookie

删除回忆录丶 提交于 2020-01-14 09:43:31
目录 一、cookie Cookie与的session由来 什么是Cookie Cookie的原理 查看Cookie cookie与session的作用 二、Django中操作Cookie 获取Cookie 设置Cookie 删除Cookie 三、Session Session的由来 设置session 获取session 四、设置session与cookie的超时时间 删除当前的会话数据并删除会话的Cookie(推荐) 五、Django中Session相关方法 Session流程解析 Session版登陆验证 Django中的Session配置 一、cookie Cookie与的session由来 大家都知道HTTP协议是无状态的。 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况。 一句有意思的话来描述就是人生只如初见,对服务器来说,每次的请求都是全新的。 状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留。会话中产生的数据又是我们需要保存的,也就是说要“保持状态”。因此Cookie就是在这样一个场景下诞生。 什么是Cookie Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对

Springboot实现WebSocket群聊简单demo

倾然丶 夕夏残阳落幕 提交于 2020-01-14 07:47:34
前言: 这里不做springboot框架搭建步骤,只做具体的实现,代码里有具体注释,所以不做多解释这里。 代码里可能有相关日志的输出用到了slf4j,可以删掉改成System.out.println();看自己喜好。 1、引入WebSocket依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> 2、写入WebSocket配置类 package com.xuan.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; /** * WebSocket配置类 * @author Xuan * @date 2020/1/3 16:49 */ @Configuration public class WebSocketConfig { /

django之forms组件和cookie与session操作

不问归期 提交于 2020-01-14 00:43:40
目录 django之forms组件和cookie与session操作 forms组件 forms主要功能 普通方式手写注册功能 views.py login.html forms组件 先定义一个类和导入: 如何校验数据 如何渲染页面的三种方法 如何渲染错误信息 label 将英文修改成中文 校验:邮箱格式是否正确 forms的常用参数 钩子函数: 全局钩子 局部钩子 正则简单用法: 基于使用form组件实现注册功能 views.py login2.html cookie与session操作 Cookie的介绍 什么是Cookie Cookie的原理 查看Cookie Django中操作Cookie Cookie 获取Cookie Session 保存在服务端上的键值对 设置会话Session和Cookie的超时时间 删除当前会话的所有Session数 验证以上cookie和session的代码 装饰器模板 views.py 登录功能 views.py urls.py html django之forms组件和cookie与session操作 forms组件 forms主要功能 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上次输入内容 注意点: 注册页面: 用户点击注册发送到后端做用户名密码的校验。 用户不能含敏感词,不符合社会主义核心价值观。 密码不能为空。 需求:

初识单点登录及JWT实现

坚强是说给别人听的谎言 提交于 2020-01-13 21:59:24
单点登录 多系统,单一位置登录,实现多系统同时登录的一种技术 (三方登录:某系统使用其他系统的用户,实现本系统登录的方式。如微信登录、支付宝登录) 单点登录一般是用于互相授信的系统,实现单一位置登录,全系统有效 一、Session跨域   所谓 Session 跨域就是摒弃了系统提供的 Session ,而使用自定义的类似 Session 的机制来保存客户端数据的一种解决方案。   如:通过设置 cookie 的 domain 来实现 cookie 的跨域传递。在 cookie 中传递一个自定义的 session_id。这个 session_id 是客户端的唯一标记,将这个标记作为key,将客户需要保存的数据作为value,在服务端进行保存(数据库保存或nosql保存)。这种机制就是 Session 的跨域解决。    什么为跨域:客户端请求的时候,请求的服务器,不是同一个IP、端口、域名、主机名的时候,都称为跨域。   什么是域:在应用模型中,一个完整的、有独立访问路径的功能集合成为一个域。        如:百度称为一个应用或系统,其下有若干个域,如搜索引擎(www.baidu.com),百度贴吧(tie.baidu.com),百度知道(zhidao.baidu.com)等。        有时也称为多级域名。域的划分:以IP、端口、域名、主机名为标准,实现划分。 二

django之forms组件

微笑、不失礼 提交于 2020-01-13 21:27:43
django为我们提供了forms组件,可以让我们非常方便的渲染前端页面、接收及验证前端发送到后端的数据。、 forms组件不会将用户的输入清空 1.forms组件基本使用 后端代码 views.py --------------------------------------- from django import forms class MyRegForm(forms.Form): username = forms.CharField(max_length=8, min_length=3) password = forms.CharField(max_length=8, min_length=3) email = forms.EmailField() def register(request): # 生成一个自定义的form组件对象 form_obj = MyRegForm() if request.method == 'GET': return render(request, 'register.html', locals()) form_obj = MyRegForm(request.POST) return render(request, 'register.html', locals()) 前端代码 <form action="" method="post"

web.config常见的配置

自作多情 提交于 2020-01-13 16:39:10
web.config常见的配置 一、认识Web.config文件 Web.config 文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的 Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个 Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。 (一).Web.Config是以XML文件规范存储,配置文件分为以下格式 1.配置节处理程序声明 特点:位于配置文件的顶部,包含在<configSections>标志中。 2.特定应用程序配置 特点: 位于<appSetting>中。可以定义应用程序的全局常量设置等信息. 3.配置节设置 特点: 位于<system.Web>节中,控制Asp.net运行时的行为. 4.配置节组 特点: 用<sectionGroup>标记,可以自定义分组,可以放到<configSections>内部或其它<sectionGroup>标记的内部. (二).配置节的每一节 1.<configuration>节根元素