会话管理cookie&session

author author     2022-09-14     754

关键词:

1.会话技术:从浏览器开始访问服务器,到关闭浏览器,这期间发生了许多次请求和响应,这个过程就叫做一次会话。
2.问题:如何在一次会话中保存会话相关的数据。
3.Cookie:将会话相关的数据保存到浏览器中,并且在每次访问服务器时都带过去。(浏览器端技术)
    3.1javax.servlet.http.Cookie,可以直接利用此类的构造方法创建一个Cookie,创建出来的Cookie需要设置一个名称和值
    3.2response身上具有addCookie的方法,可以将创建出来的组织成响应消息中的set-cookie头,通知浏览器保存该cookie
    3.3request身上具有getCookies方法,可以获取浏览器带过来的所有Cookie
    3.4Cookie方法:注意,浏览器是根据cookie的名称加上cookie的path来区分是否是同一个cookie的,如果需要覆盖之前的cookie,除了保证名称相同外还要保证path也相同。
            public Cookie(String name,String value)利用构造方法创建一个Cookie对象,在创建的时候就要指定该Cookie的名和值
            setValue与getValue方法  设置或者获取Cookie的值
            setMaxAge与getMaxAge方法     如果不设置cookie的MaxAge(或将其值设置为负值),则默认情况下浏览器会将cookie保存在浏览器的内存中,会随着浏览器关闭而消失。如果设置为一个正值,则代表该Cookie要保存的以秒为单位的时间值,如此,该cookie将会被浏览器保存到硬盘中去。如果将MaxAge设置为0,则是通知浏览器去删除该Cookie。
            setPath与getPath方法   用来指定访问哪个ULR及其子URL时带上此cookie,如果不设置此值,则浏览器默认会将发送该cookie的servlet所在的路径作为path使用。
                例如:
                        setPath("/Day06")则/Day06/.../...的路径都会带上该Cookie
                        如果发送该Cookie的Servlet是 /Day06/servlet/Demo1Servlet,并且未设置setPat,则浏览器在访问/Day06/servlet/..时会带上该cookie
            setDomain与getDomain方法  设置cookie对应的域名,此方法一旦调用,则浏览器会认为该cookie是一个第三方cookie而拒收
            getName方法 获取该cookie的名字,注意没有setName方法,一个Cookie一旦创建出来就不能修改名字了
            
    3.5浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
    
    实验:    利用cookie实现显示上次访问时间
            !~~利用cookie显示最近浏览的商品
4.HttpSession:在服务器中,为浏览器创建独一无二的内存空间,在其中保存会话相关的信息。(服务器端技术)
    4.1session作为域使用:他是j2ee中四大域对象之一,作用范围为整个会话。
    4.2session的生命周期:在第一次调用reqeust.getSession()方法的时候,服务器会检查是已经有对应的session,如果没有就在内存中创建一个session并返回。
                                                当一段时间内session没有被使用,一般为30分钟(此值可以在web.xml中配置<session-config>来配置,也可以使用TomcatManager进行配置),则服务器会销毁该session
                                                当服务器强行关闭时,没有到期的session也会跟着销毁。
                                                如果调用session提供的invalidate(),可以立即销毁session。
    4.3session的原理:在服务器第一次调用request.getSession()方法的时候,会在内存中创建一个session对象,此对象具有一个独一无二的id值,此id值将会以cookie(JSESSIONID)的形式发送给浏览器,浏览器以后每次访问都会带着此cookie,服务器就利用此cookie区分浏览器找到对应的session空间。
    4.4同一电脑内的不同浏览器使用同一session:JSESSIONID这个cookie默认是保存在浏览器内存中的,我们可以自己创建一个同名同path的Cookie,并设置maxage值,使其被保存在硬盘中,从而实现统一电脑中不同浏览器公用一个JSESSIONID从而使用同一个session。
    4.5使禁用Cookie的浏览器也可以使用session:由于session是基于cookie运行的,如果禁用了cookie则会导致session不可用,我们可以将提供给这种浏览器的所有的URL进行重写,在所有的URL后跟上JSEESIONID,从而保证即使禁用了Cookie也能以URL的形式带回JSESSIONID,从而可以使用session。要重写所有的URL是一项成本很高的工作,一般我们不会这么做。
        response. encodeRedirectURL(java.lang.String?url)如果此url是作为重定向操作的地址时使用此方法
        response. encodeURL(java.lang.String?url)如果此url是普通连接则使用此方法
        实验:利用session实现简单的购物功能,并提供对同一台电脑上的多个浏览器共享session的支持以及对禁用cookie浏览器的支持。
        实验:使用Session完成用户登陆:当用户登录时在session中保存用户名,在其他页面就可以检查session中是否存在用户名,如果存在则认为已经登录过。注销的过程就是将session杀死的过程。
        实验:使用session完成防止表单重复提交:当提供表单页面时,在表单中隐藏一个随机数值,并且将该随机数保存到session中,当表单提交时,检查提交上来到随机数与session中的随机数是否相同,如果相同则允许注册,注册后立即删除session中的随机数,如果不同则认为是表单的重复提交。
    ??作业:利用session实现一次性验证码.
        *request.getSession()和request.getSession(false);的不同之处:前面的方法一调用,就会去检查是否有对应的session,没有就创建,有就取回。后面的方法只会去检查,如果有就取回,如果没有也不创建。
        
5.ServeltContext 、reqeust、session域的比较
    servletContext 的作用域是整个web应用,随着服务器启动而创建,如果应用被移除出主机或服务器关闭则销毁。
    request 的作用域是整个请求链,每一次请求都会创建一个request,当请求结束时request销毁。
    session 的作用于是整个会话,第一次调用reqeust.getSession时创建,当一段时间没有使用或服务器关闭或调用session.invalidate方法时销毁
    
    
    什么时候用ServeltContext什么时候用reqeust什么时候用session?
    如果一个数据只是用来显示的话就用request域
    如果一个数据除了用来显示以外我一会还要用,这时候用session
    如果一个数据除了用来显示以外还要给别人用,这时候用ServletContext域
   

会话技术cookie&session

... 记住客户端状态(区分客户端)会话技术分为Cookie和Session:Cookie:数据存储在客户端本地,减少服务器端的存储的压力,但安全性不好,客户端   可以清除cookieCookie技术:存到客户端  发送cookie    Cook 查看详情

java中的会话cookie&&session

...共享数据方式:客户端会话技术:cookie服务器端和会话技术:sessioncookie:概念:客户端会话技术,将数据保存在客户端快速入门:使用步骤创建cookie对象,绑定数据newCookie(Stringname,Stringvalue)发送 查看详情

cookie&session(代码片段)

Cookie&Session一、会话技术会话:一次会话中包含多次请求和响应功能:在一次会话的范围内的多次请求间共享数据方式:客户端会话技术:Cookie服务器端会话技术:Session二、Cookie1.概念客户端会话技术,... 查看详情

javaweb会话技术cookie&session

...浏览器的整个过程,称为一次会话。会话技术分为Cookie和Session。Cookie是指将数据存储在本地,减少服务器的存储压力,安全性不好,客户端可清除Cookie。Session是指将数据存储在服务器,增加服务器的存储压力,安全性高,客户... 查看详情

cookie&session会话跟踪技术

...建cookie,设置path和Age]理解cookie的执行原理(重要)可以对session的作用域数据进行操作:存放,获得,移除理解session的执行原理(重要)  一,记录用户的上一次访问时间    当用 查看详情

cookie&&session超详解✌(代码片段)

文章目录Cookie&&Session1.会话技术2.Cookie3.JSP入门4.SessionCookie&&Session1.会话技术会话:一次会话中包含多次请求和响应。一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止。... 查看详情

会话技术cookie&session(代码片段)

...这次会话中客户端态的状与数据的。会话技术分为Cookie和Session:  Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端     可以清除cookie  Sessi 查看详情

会话技术cookie&session(代码片段)

...这次会话中客户端的状态与数据的。会话技术分为Cookie和Session:Cookie:数据存储在客户端,减少服务器端的存储压力,安全性不好,客户端可以清除cookie 查看详情

会话管理——cookie和session技术

1Cookie技术1.1Cookie技术特点:会话数据保存在浏览器客户端1.2Cookie的APICookie类:保存会话数据1)创建Cookie对象,用于保存会话数据newCookie(java.lang.String name,java.lang.String value)2)设置Cookie对象voidsetPath(java.lang.Stringuri) 设 查看详情

cookie&session(会话技术)(代码片段)

...这个游览器的整个过程成为一次会话会话技术分为Cookie和SessionCookie:数据存储在客服端本地,减少对服务端的存储的压力,安全性相对较低,客服端也清楚CookieSession:将数据存储到服务器端,安全性相对好,增加服务器压力一... 查看详情

会话技术:cookie&&session(代码片段)

...SP的脚本:JSP定义Java代码的方式   4.JSP的内置对象##Session:主菜   1.概念   2.快速入门   3.原理    4.细节   5.session的特点##会话技术   1.会话:一次会话中包含多次请求和响应。      *一次会话:... 查看详情

会话技术cookie&session

一、会话技术简介1.存储客户端的状态  如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户... 查看详情

javaweb会话管理:session

...数据存放位置1Cookie技术会话数据保存在浏览器客户端。2Session技术会话数据保存在服务器端。2、Session技术2.1、引入Cookie的局限:1)Cookie只能存字符串类型。不能保存对象2)只能存非中文。3)1个Cookie的容量不超过4KB。 如果... 查看详情

会话技术session&cookie

一、会话技术简介1.存储客户端的状态    由一个问题引出今天的内容,例如网站的购物系统,用户将购买的商品信息存储到哪    里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源... 查看详情

django学习系列(五.会话技术cookie&session&token)(代码片段)

文章目录前言COOKIE会话cookie流程示例cookie加密SEESION会话示例Token会话流程图前言这篇博客为django系列,很前面的联系较为紧密.如果你是大佬,可以直接略过(如果你要指点,请评论区留言,到目前位置django学习系列已经可以说开始正式... 查看详情

cookie&session

会话技术   什么是会话 :用户打开一个浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程称为是一次会话.  常见的会话技术:         Cookie  :将数据... 查看详情

cookie&session

会话技术简介存储客户端的状态由一个问题引出今天的内容,例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并 不知道该客户端是谁,所... 查看详情

03012_会话技术cookie&session

1、会话技术简介  (1)存储客户端的技术    网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识... 查看详情