session对象

使用Tomcat+Redis来实现集群部署中的Session共享问题

独自空忆成欢 提交于 2019-12-28 16:44:08
一、工作中因为要使用到Tomcat集群部署,此时就涉及到了Session共享问题,主要有三种解决方案: 1、使用数据库来存储Session 2、使用Cookie来存储Session 3、使用Redis来存储Sesssion 二、本文中主要讲一下第3种方案,也就是使用Redis来存储Session,Github中已经有该开源组件(tomcat-redis-session-manager),下面讲一下配置的步骤 1、配置tomcat配置文件context.xml <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager" host="localhost" <!-- Redis地址 --> port="6379" <!-- Redis端口 --> password="123456" <!-- Redis密码 --> database="0" <!-- 存储Session的Redis库编号 --> maxInactiveInterval="60" <!-- Session失效的间隔(秒) --> />    注: 1

session对象学习

柔情痞子 提交于 2019-12-28 11:15:27
首先创建一个session项目 在src目录里创建bean包,并且新建user实体类 User.java package net.ys.bean; public class User { public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; } private int id; private String username;

深入理解TCP/IP应用层

∥☆過路亽.° 提交于 2019-12-28 09:03:06
TCP/IP四层模型分为: 应用层,传输层(只关注起点(发送者)和终点(接收者)),网络层(规划出一条或几条路线),数据链路层(关注两个相邻点之间怎么传输) 协议 应用层 DNS,URI,HTML,HTTP,SSL,SMTP,POP,IMAPTELNET,SSH,FTP,SNMP 应用程序相关 传输层 TCP,UDP,UDP-Lite,SCTP,DCCP 操作系统内核负责 网络层 ARP,IP,ICMP 操作系统内核负责 数据链路层 网卡层(以太网协议) 设备驱动程序及 网络接口负责 一、应用层: 1、HTTP协议(主要协议) :HTTP是超文本传输协议,是当前最流行也是最典型的应用层协议 HTTP还衍生出了封装 SSL 协议的“安全版”,HTTPS是HTTP协议的安全版,从2015年以后,基本上采用HTTPS,其更为安全,加密 2、HTTP协议的格式 : HTTP协议格式又分为其请求和相应模式 请求模式: 1)首行:方法(GET/POST/HEAD/PUT/DELETE/...)+URL+版本号(HTTP1.1为多数场景下) 2) Content-Length 表示body部分的长度(字节) Content-Type 表示body部分的数据格式 协议头header :请求的属性,每一行都是一个键值对,键和值之间用": "来分割,每组属性之间用\n分隔 User-Agent

javamail概述

落花浮王杯 提交于 2019-12-28 04:32:14
JavaMail 是java提供的一组API,用来发送和接收邮件! --------------------- 邮件相关的协议 smtp 25 --> 简单的邮件传输协议 pop3 110 --> 邮局协议第3版 --------------------- ================================= JavaMail 1. 导包! * mail.jar * actvition.jar ---------------- 核心类: 1. Session * 如果你得到了它,表示已经与服务器连接上了,与Connection的作用相似! 得到Session,需要使用Session.getInstance(Properties, Authenticator); Properites props = new Properties(); props.setProperty("mail.host", "smtp.163.com"); props.setProperty("mail.smtp.auth", "true"); Authenticator auth = new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new

day_58

匆匆过客 提交于 2019-12-28 02:06:39
目录 cookie与session原理 cookie 如何设置cookie 如何获取cookie 删除cookie(了解) 基于cookie实现的登录认证装饰器 session django中间件 cookie与session原理 ​ 为什么会有这些技术 ​ 1.目的是为了保存客户端的用户状态 ​ 2.原因:HTTP协议是无状态的 cookie ​ 保存在客户端浏览器上的键值对 ​ cookie虽然是保存在客户端浏览器上的键值对 但它是由服务端设置的 ​ 浏览器有权禁止cookie写入 ​ token 加密字符串 ​ 加密算法 xxx ​ username >> (xxx) >> 随即字符串 ​ django操作cookie 小白必会三板斧 obj = HttpResponse() # 利用obj对象你才可以操作cookie return obj obj = render() return obj obj = redirect() return obj 如何设置cookie obj.set_cookie('k1','v1') # 告诉浏览器设置 如何获取cookie request.COOKIES.get('k1') # 获取浏览器携带过来的cookie值 如何设置cookie的超时时间 obj.set_cookie('k1','v1',max_age=3) obj.set

Django之cookie与session、中间件

旧巷老猫 提交于 2019-12-28 01:05:01
目录 cookie与session 为什么会有cookie和session cookie 设置cookie 获取cookie 删除cookie 实例:cookie版登录校验 session 设置session 获取session 删除session session也可以设置超时时间 实例:session版登录校验 django中间件 应用场景 自定义方法 django请求生命周期流程图 中间件之前端操作 跨站请求伪造(csrf) 钓鱼网站实例 防钓鱼网站策略 CBV加装饰器 csrf_exempt 两种装饰方式 其他装饰器 三种装饰方式 每日面试题 python2和python3的区别(至少写三个) 什么是可变,什么是不可变 m=10,n=5,互换值(至少两种方式) cookie与session 为什么会有cookie和session 由于HTTP协议是无状态的,无法记住用户是谁,这样我们在每一次登陆的时候,都要重新输入密码,甚至如果不设置cookie,网页可能都请求不了 cookie 保存在 客户端 浏览器上的键值对 是 服务端 设置在 客户端 浏览器上的键值对,也就意味着浏览器其实可以拒绝服务端的命令。默认情况下,浏览器都是直接让服务端设置键值对的 在操作开始之前我们需要对三板斧进行变形 obj1 = HttpResponse() return obj1 obj2 =

一文看懂轻量级框架——Flask

妖精的绣舞 提交于 2019-12-27 20:11:05
Flask 一、flask入门 WEB工作原理 C/S 客户端/服务器端 B/S 浏览器/服务器端 Flask有俩大核心 werkzeug 实现路由、调试和web服务的网关接口 jinjia2 实现了模板 简介: flask 是一个python微型框架 只提供了一个强健的核心 其它功能都需要通过第三方扩展库来实现 安装 pip install flask 完整启动的代码 from flask import Flask app = Flask ( __name__ ) # 路由 别人访问你的地址 http://www.baidu.com/a/b @app . route ( '/' ) def index ( ) : print ( '访问到我了' ) # 响应 return '访问到我了' # 判断只能在主文件中文件flask项目 if __name__ == '__main__' : # 运行flask app . run ( ) 启动地址 http://127.0.0.1:5000 http://127.0.0.1:5000 / run启动参数 参数 说明 debug 是否开启调试模式 默认为false 开启会自动加载代码 和显示错误信息 threaded 是否开启多线程 默认是不开启的 port 端口号 默认5000 host 主机 默认127.0.0.1 完整的启动 app

express 框架之session

﹥>﹥吖頭↗ 提交于 2019-12-27 19:25:07
一、什么是session?   最近在学习node.js 的express框架,接触到了关于session方面的内容。翻阅了一些的博客,学到了不少东西,发现一篇博文讲的很好,概念内容摘抄如下: Session是什么 Session一般译作会话,牛津词典对其的解释是进行某活动连续的一段时间。从不同的层面看待session,它有着类似但不全然相同的含义。比如,在web应用的用户看来,他打开浏览器访问一个电子商务网站,登录、并完成购物直到关闭浏览器,这是一个会话。而在web应用的开发者开来,用户登录时我需要创建一个数据结构以存储用户的登录信息,这个结构也叫做session。因此在谈论session的时候要注意上下文环境。而本文谈论的是一种基于HTTP协议的用以增强web应用能力的机制或者说一种方案,它不是单指某种特定的动态页面技术,而这种能力就是保持状态,也可以称作保持会话。 为什么需要session 谈及session一般是在web应用的背景之下,我们知道web应用是基于HTTP协议的,而HTTP协议恰恰是一种无状态协议。也就是说,用户从A页面跳转到B页面会重新发送一次HTTP请求,而服务端在返回响应的时候是无法获知该用户在请求B页面之前做了什么的。 对于HTTP的无状态性的原因,相关RFC里并没有解释,但联系到HTTP的历史以及应用场景,我们可以推测出一些理由: 1.

session是什么?为什么出现?

本秂侑毒 提交于 2019-12-27 13:54:39
定义 Session在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。 当访问服务器某个网页的时候,会在服务器端的内存里开辟一块内存,这块内存就叫做session,而这个内存是跟浏览器关联在一起的。这个浏览器指的是浏览器窗口,或者是浏览器的子窗口,意思就是,只允许当前这个session对应的浏览器访问,就算是在同一个机器上新启的浏览器也是无法访问的。而另外一个浏览器也需要记录session的话,就会再启一个属于自己的session 来源 我们目前使用的互联网应用层协议基本上都是基于 HTTP 和 HTTPS 的,它们的本身是无状态的, 只负责请求和响应。 我告诉服务器我需要什么,服务器返回给我相应的资源。 如果没有额外处理的话, 服务器是不知道你是谁,更无法根据你是谁给你展现和你相关的内容了。 HTTP

PAM认证机制

断了今生、忘了曾经 提交于 2019-12-27 03:46:32
一、PAM简介 Sun公司1995年开发的一种与认证相关的通用框架机制,PAM只关注如何为服务验证用户的API,通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开;PAM只是一个框架而已,自身不做认证。 它提供了对所有服务进行认证的中央机制,适用于login\telnet\rlogin\fsh\ftp\pp\su等应用程序中。 PAM-API 调用认证接口 PAM-SPI 提供认证接口 对应的文件名:pam_xxxx() PAM认证一般遵循这样的顺序:Service->PAM(配置文件)->pam_*.so,这就是调用机制 二、配置PAM PAM的目录: /lib64/security/pam* 全是pam模块 /etc/security/ pam模块的配置文件 /etc/pam.conf pam主配置文件,默认不存在(不推荐使用) /etc/pam.d/ pam子配置文件,推荐使用 我们查看/etc/pam.d/passwd [ root@newhostname 1372 ] # cat /etc/pam.d/passwd #%PAM-1.0 auth include system-auth account include system-auth password substack system-auth -password optional pam