session对象

理解cookie和session技术

有些话、适合烂在心里 提交于 2020-03-09 17:08:07
一、HTTP协议的无状态性 WEB应用程序使用的是HTTP协议传输数据的,HTTP协议是一个无状态的协议,这次数据传输完毕,客户端会和服务端断开连接,再次传输数据就需要重新建立新的连接,这也就无法会话跟踪。可以理解为服务器是一个健忘症,这次你访问他和它交换数据,下次来他就不认识你了,这是一个很不友好的事情。这个问题有一个很直接的方法解决它,就是服务器你认识你,你每次都告诉它你的名字,也就是每次客户端访问的时候都需要带上自己的参数,可以采用GET请求每次带上自己的参数,但是这肯定是不可取的,应为GET请求会把参数信息放在浏览器的地址栏中,信息都暴露了,完全保证不了安全性。为了解决HTTP协议这个健忘症患者,cookie和session技术登上了历史舞台。 二、Cookie 既然每次GET请求的时候把数据带上保证安全的,cookie技术把数据放在请求头中了,这样就安全一点了吧。其实也不怎么安全..后面说。cookie技术是一种客户端技术,首先程序给客户端以cookie的形式把数据存放在了浏览器中,这样浏览器再次去请求的时候会带上这个数据,这样浏览器就认识这个请求了。访问过程就是客户端第一次访问服务器的时候浏览器会在响应头中加上 Set-Cookie 信息,当跳转到另外一个资源的时候也就是再次发送一个请求的时候,请求会在请求头上带上 Cookie:xxx ,也就是前面自己的数据

前端开发数据存储技术

一个人想着一个人 提交于 2020-03-09 04:40:40
浏览器端: cookie WebStorage(localStorage、sessionStorage) indexedDB 服务器端: session cookie Cookie 是小甜饼的意思。顾名思义,cookie 确实非常小,它的大小限制为4KB左右。cookie只能保存字符串类型,以文本的方式。 它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码”,这通常就是通过在 Cookie 中存入一段辨别用户身份的数据来实现的。 #session机制: 当服务器收到请求需要创建session对象时,首先会检查客户端请求中是否包含sessionid。如果有sessionid,服务器将根据该id返回对应session对象。如果客户端请求中没有sessionid,服务器会创建新的session对象,并把sessionid在本次响应中返回给客户端。通常使用cookie方式存储sessionid到客户端,在交互中浏览器按照规则将sessionid发送给服务器。如果用户禁用cookie,则要使用URL重写,可以通过response.encodeURL(url) 进行实现;API对encodeURL的结束为,当浏览器支持Cookie时,url不做任何处理;当浏览器不支持Cookie的时候,将会重写URL将SessionID拼接到访问地址后。

关于 InnoDB 锁的超全总结

这一生的挚爱 提交于 2020-03-09 02:28:16
共享锁和排他锁,其实就是我们常说的读锁和写锁。它们之间的互斥规则,想必都清楚,就不赘述了。但有一点需要注意,共享锁和排他锁是标准的实现行级别的锁。举例来说,当给 select 语句应用 lock in share mode 或者 for update,或者更新某条记录时,加的都是行级别的锁。 与行级别的共享锁和排他锁类似的,还有表级别的共享锁和排他锁。如 LOCK TABLES ... WRITE/READ 等命令,实现的就是表级锁。 Intention Locks 在 InnoDB 中是支持多粒度的锁共存的,比如表锁和行锁。而 Intention Locks - 意向锁,就是表级锁。和行级锁一样,意向锁分为 intention shared lock (IS) 和 intention exclusive lock (IX) . 但有趣的是,IS 和 IX 之间并不互斥,也就是说可以同时给不同的事务加上 IS 和 IX. 兼容性如下: 这时就产生疑问了,那它俩存在的意义是什么?作用就是,和共享锁和排他锁互斥。注意下,这里指的是表级别的共享锁和排他锁,和行级别没有关系! 官网中给了这样一段解释: The main purpose of intention locks is to show that someone is locking a row, or going to lock

java web----jsp语法

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-09 00:43:41
JSP学习 注意:jsp中${user},是在服务器上的,首先去request中找,没有去session中找。。。。。(自己总是错误的认识jsp是一个网页,在浏览器上进行的) Jsp的page指令学习   <%@page属性名=“属性值”属性名=“属性值”...%> 属性名:   1anguage:声明sp要被转译的语言。   import:声明转译的java文件要导入的包,不同的包使用逗号隔开。   pageEncoding:设置jsp文件的数据编码格式。   contentType="text/html;charset=utf-8"设置isp数据响应给浏览器时,浏览器的解析和编码格式。   session:设置转译的servlet中是否开启session支持,默认开启,true表示开启。false表示关闭。   errorPage:设置jsp运行错误跳转的页面。(里面传入跳转的jsp路径)   extends:设置jsp转译的java文件要继承的父类(包名+类名)。 作用:   配置sp文件的转译相关的参数。 jsp java代码块 使用:<% java代码 %>局部代码块   缺点:可阅读性极差 局部代码块   声明的java代码会被原样转译到jsp对应的servlet文件的_JspService方法中 <body> <% int a =3; if (a>1){ %> <b>

登录事宜

♀尐吖头ヾ 提交于 2020-03-08 19:38:21
登录 通过Session保持登录状态 在 Express 这个框架中,默认不支持 Session 和 Cookie 但是我们可以使用第三方中间件: express-session 来解决 npm install express-session 配置 (一定要在 app.use(router) 之前) 使用 当把这个插件配置好之后,我们就可以通过 req.session 来发访问和设置 Session 成员了 添加 Session 数据: req.session.foo = 'bar' 访问 Session 数据: req.session.foo var session = require ( 'express-session' ) app . use ( session ( { // 配置加密字符串,它会在原有加密基础之上和这个字符串拼起来去加密 // 目的是为了增加安全性,防止客户端恶意伪造 secret : '123' , resave : false , saveUninitialized : false // 无论你是否使用 Session ,都默认直接给你分配一把钥匙 } ) ) 登入 router . get ( '/login' , function ( req , res ) { res . render ( 'login.html' ) } ) router .

mybatis配置与使用

*爱你&永不变心* 提交于 2020-03-08 19:26:13
一:Mybatis简介 1.名称由来 Mybatis原名叫ibatis.Mybatis一开始属于Apache,2010年从Apache转移到了GoogleCode这个组织中. 2.Mybatis概念 Mybatis是一种基于ORM模式的,作用于Dao层的轻量级框架.和Hibernate类似,也支持各种SQL语句,也支持存储过程和高级映射等操作. 3.Mybatis优点 Mybatis比Hibernate更为轻量级; Mybatis几乎消除了所有的JDBC代码和参数的手工设置. 4.Mybatis特点 Mybatis具有比较强大的动态语句功能.而且Mybatis在JavaBean和表之间的映射关系建立方面,也更加的便捷灵活. 5.Mybatis的核心API ①.SqlSessionFactoryBuilder: SqlSessionFactoryBuilder是整个Mybatis框架的入口,提供了一个build()方法,用来创建SqlSessionFactory对象. SqlSessionFactoryBuilder对象一般是在xml文件中通过configuration节点来进行配置. ②.SqlSessionFactory: 用来创建SqlSession.注意:该对象一般只用创建一个对象就可以,也就是不要重复创建该对象! ③.SqlSession:

20)django-session使用

拟墨画扇 提交于 2020-03-08 06:21:37
一:目录   1)session原理   2)cookie与session对比   3)session配置   4)session使用   5)示例 二:session原理   Django的Session机制会向请求的浏览器发送cookie字符串。同时也会保存到本地一份,用来验证浏览器登录是否为同一用户。   它存在于服务器,Django默认会把session存入到数据库中。   Session依赖于Cookie,如果浏览器不能保存cooki那么session就失效了(比如清空浏览器缓存)。   因为它需要浏览器的cooki值去session里做对比。 session就是用来在服务器端保存用户的会话状态。   session是保存在服务器端的键值对(是保存在内存中)   比如登陆:用户提交登陆成功后,seesion会给客户端随机生成个字符串,发给客户端,并保存在内存或者数据库中,   下次在来的时候,客户端带字符串,会和session中的字符串比对。     session字典示例如下:     session={     adbssdff{       "is_login":True,       "user:"XX",       }     }   在做seesion 之前先要运行   python manage.py makemigrations   python

mybatis实战教程(mybatis in action),mybatis入门到精通

泄露秘密 提交于 2020-03-08 05:29:11
MyBatis 目录 (?) [-] mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程mybatis in action之三实现数据的增删改查 mybatis实战教程mybatis in action之四实现关联数据的查询 mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载 转自: http://www.yihaomen.com/article/java/302.htm (读者注:其实这个应该叫做很基础的入门一下下,如果你看过Hibernate了那这个就非常的简单) 写在这个系列前面的话: 以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错

在Servlet中如何使用内置对象

久未见 提交于 2020-03-07 12:32:56
eg: 在servlet中使用session。 a. 先在servlet界面导入seesion包。eg:import javax.servlet.http.HttpSession; b. 在doGet()或doPost()方法中创建session对象。eg:HttpSession session=request.getSession(); c 在代码中可以使用session。 servlet中out对象的获取。 a. 首先导入包:import java.io.PrintWriter; b. 创建out对象:PrintWriter out = response.getWriter(); 来源: CSDN 作者: 远-方 链接: https://blog.csdn.net/weixin_42132733/article/details/104711002

django进阶

心已入冬 提交于 2020-03-07 04:42:22
   Form django中的Form一般有两种功能: 输入html 验证用户输入 #!/usr/bin/env python # -*- coding:utf-8 -*- import re from django import forms from django.core.exceptions import ValidationError def mobile_validate(value): mobile_re = re.compile(r'^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$') if not mobile_re.match(value): raise ValidationError('手机号码格式错误') class PublishForm(forms.Form): user_type_choice = ( (0, u'普通用户'), (1, u'高级用户'), ) user_type = forms.IntegerField(widget=forms.widgets.Select(choices=user_type_choice, attrs={'class': "form-control"})) title = forms.CharField(max_length=20, min