会话技术——Session和Cookie

一、会话技术

1、什么是会话:客户打开浏览器访问一个网站,访问完毕之后,关闭浏览器。这个过程称之为一个会话。就如同打电话。

2、会话在编程中主要解决的问题是:保存各个用户的数据信息。

3、保存用户各自数据的主要技术:  

  客户端技术:Cookie  

  服务端技术:HttpSession

二、Cookie

1、获取Cookie采用request.getCookies()

2、设置Cookie采用response.addCookie(Cookie c)

3、cookie的属性  

  3.1maxAge:默认是浏览器的进程。也就是说不设置该属性,浏览器关闭后,cookie就被删除了。    也可以设置其存活时长,单位为妙  

  3.2path:默认是产生cookie的应用的访问路径。   

    如果设置了路径,只能被包含此路径的资源访问   

    假如设置路径为“/day06”,也就是说,该cookie只能被day06这个应用访问   

    假如设置路径为“/day07”(day06的应用增加的cookie),该cookie只能被day07访问,而day06是访问不到的   

    假如设置路径为“/”,该cookie可以被同一个服务器的所有应用访问

三、Session

1、IE7及以下版本,新开窗口都会开启一次新会话

2、每个客户端都有各自的Session对象,以SessionId标识。

3、Session技术实际上是借助Cookie技术实现的。在创建session时,会将该Session的ID以cookie:JSESSIONID=sessionId的形式写给客户端。

4、Session默认情况下何时失效?

  时间到了,默认是30分钟

  更改Session的失效时间方法: 修改web.xml文件,在根元素中增加以下内容:

<session-config>   
    <session-timeout>1</session-timeout><!--单位为分钟-->  
</session-config> 

5、客户端禁用了cookie怎么办?

  解决办法:URL重写。以下两个方法可以实现重写。要对该站多有的URL都要进行重写。

  (1)response.encodeRedirectURL(java.lang.String?url) :针对重定向的地址进行重写

  (2)response.encodeURL(java.lang.String?url):其他地址进行重写

(在老的浏览器中,用localhost访问网站,即使禁用了cookie,cookie还是有效的)

转载于:https://www.cnblogs.com/FlySheep/p/3405286.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Session 是 Web 应用程序中常用的一种机制,它用于存储用户的数据,以便在应用程序的不同页面中进行共享。Session 可以通过 cookie 或 URL 参数来实现,但是最常见的方式是使用 cookie。 在使用 session 时,服务器会为每个用户分配一个唯一的会话 ID,并将该 ID 存储在 cookie 中。每次用户访问网站时,服务器都会从 cookie 中获取会话 ID,然后将与该 ID 相关联的数据加载到 session 对象中。 下面是一个使用 session 的示例: ```python from flask import Flask, session, redirect, url_for, escape, request app = Flask(__name__) app.secret_key = 'mysecretkey' @app.route('/') def index(): if 'username' in session: username = session['username'] return 'Logged in as ' + username + '<br>' + \ "<b><a href = '/logout'>click here to log out</a></b>" return "You are not logged in <br><a href = '/login'></b>" + \ "click here to log in</b></a>" @app.route('/login', methods = ['GET', 'POST']) def login(): if request.method == 'POST': session['username'] = request.form['username'] return redirect(url_for('index')) return ''' <form action = "" method = "post"> <p><input type = "text" name = "username"/></p> <p><input type = "submit" value = "Login"/></p> </form> ''' @app.route('/logout') def logout(): session.pop('username', None) return redirect(url_for('index')) ``` 在上面的示例中,我们首先需要导入 Flask 和 session。然后,我们创建一个名为 app 的 Flask 实例,并将其密钥设置为 "mysecretkey"。这个密钥用于保护 session 数据,因此应该保持机密。 接下来,我们定义了三个路由函数: - index():该函数检查 session 是否包含一个名为 "username" 的键,如果是,则返回用户已登录的消息;否则,返回用户未登录的消息。 - login():该函数使用 POST 方法处理表单提交,并将输入的用户名存储在 session 中。然后,该函数将用户重定向到 index() 函数。 - logout():该函数从 session 中删除 "username" 键,并将用户重定向到 index() 函数。 在上面的示例中,我们使用了 Flask 的内置 session 对象来存储用户的数据。session 对象是一个类字典的对象,可以使用与字典相同的方式存储和访问数据。可以使用 session['key'] = value 来存储数据,使用 session.get('key') 来获取数据。 总之,使用 session 可以方便地在不同页面之间共享用户数据,并且可以通过设置密钥来保护敏感数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值