个人知识点

Session

会话较多用于网络上,TCP的三次握手就创建了一个会话,TCP关闭连接就是关闭会话。
在打开浏览器第一次请求该jsp的时候,服务器会自动为其创建一个session,并赋予其一个sessionID,发送给客户端的浏览器。以后客户端接着请求本应用中其他资源的时候,会自动在请求头上添加:(Cookie:JSESSIONID=客户端第一次拿到的session ID)。这样,服务器端在接到请求时候,就会收到session ID,并根据ID在内存中找到之前创建的session对象,提供给请求使用。
四个过程:1 建立tcp连接;2 发出请求文档;3 发出响应文档;4 释放tcp连接。
一个tcp会话可以有多次http请求。
关闭浏览器会让原来的session失效但并没有立刻死去,而是等待一定时间被服务器结束,打开浏览器又会新建新的session。
Session一般存储在服务器的内存中,Sessinon在用户访问第一次访问服务器时创建(注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session)。当然,强制生成Session可使用request.getSession(true)方法。
对Tomcat而言,Session是一块在服务器开辟的内存空间,其存储结构为ConcurrentHashMap(Session是Map类型!)
为什么需要Session?
析:Http协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;
Session的主要目的就是为了弥补Http的无状态特性。简单的说,就是服务器可以利用session存储客户端在同一个会话期间的一些操作记录。

session存在的问题

安全性,session劫持;
增加服务器压力,因为session是直接存储在服务器的内存中的;
如果存在多台服务器的话,还存在session同步问题,当然如果只有一台tomcat服务器的话,也就没有session同步的事情了,然而现在一般的应用都会用到多台tomcat服务器,通过负载均衡,同一个会话有可能会被分配到不同的tomcat服务器,因此很可能出现session不一致问题;解决session同步问题,实际上主要是保证能够抽离出一块共享空间存放session信息,且这块空间不同的tomcat服务器都可以访问到;一般这块共享的空间可以是数据库,或者某台服务器的内存空间,甚至硬盘空间,或者客户端的cookie也是可以的;

Json

Json,全称“JavaScript Object Notation”,JavaScript对象表示法,是一种基于文本,独立于语言的轻量级数据交换格式。 Json特点:  纯文本,具有“自我描述性”、层次结构,可通过JS解析,Json数据可使用AJAX进行传输,没有标记,读写速度快,使用数组,不使用保留字。 Json的两种结构:  Json有两种结构,对象和数组。对象结构,数据均写在一对花括号“{}”中,数据以键值对形式书写,键(key)为字符串,值(value)为字符串、数值、false、true、null,对象或数组。数组结构以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如代码。 Json字符串:  Json要求的字符串格式,例{‘name’: ‘bob’, ‘city’: ‘Beijing’}. 处理客户端提交的Json数据:  客户端提交的数据一般都是Json字符串,为了更好地进行操作,一般都会将Json字符串转换成Json对象。

如何编写json

要将编写的json数据存入至文本文件或数据库中,必须将json数据先转换成字符串类型方可存入。

在python中,json模块提供了dumps方法和loads方法。当需要将json数据存入文本文件或数据库时(对象数据无法直接存入文本文件和数据库),可使用dumps方法,该方法可将json数据转换成字符串类型;当需要从文本文件或数据库中取出被转换成“字符串”的json数据时,可使用loads方法,该方法可将字符串类型的数据转换成对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值