什么是Session

Session:在计算机中,尤其是在网络应用中,称为“会话控制”。(百度百科)

Session:服务器端的数据存储技术。

Session要解决什么问题
一个用户的不同请求(重定位到一个Servlet,这个Servlet需要用到上一个Servlet的request对象)的处理需要使用相同的数据怎么办呢?
解决:session技术
 
Session生命周期
当用户使用浏览器第一次向服务器发送请求的时候,服务器会调用相应的Servlet同时创建一个Session对象用于存储用户的某些信息,浏览器之后再向服务器发送其它请求的时候都会附带一个JSESSIONID(以Cookie形式存在于用户的浏览器),服务器在接收到请求后,调用对应的 Servlet 进行请求处理,同时根据 JSESSIONID 返回其对应的 session 对象。当用户超过30mins没有操作,服务器端对应的Session就会自动销毁。
注意:Session处在于服务器端、JSESSIONID(Cookie形式存在)存在于浏览器。所以说Session技术依赖于Cookie技术。
 
Session用法:
req.getSession()
1.如果请求中不存在JSESSIONID那么req.getSession()就会创建一个Session对象
2.如果请求中不存在JSESSIONID那么req.getSession()就会获取对应的Session对象
hs.setMaxInactiveInterval(arg0)
设置Session对象存在时间,不设置默认30mins自动销毁(使用Session对象后又重新开始30mins计时)
 
还有一种情况就是Session对象没销毁但JSESSIONID 丢失,一次会话(就是当你关闭浏览器JSESSIONID就会销毁),所以请求中不存在之前的JSESSIONID 便无法访问之前的Session对象。
 
如何利用Session和Cookie解决免登陆问题
eg:我们都应该都有过这样的体验就是我们在访问某一网站的时候,只要我们第一次登录账号密码,下一次进入直接就是主页而不是登录界面。
 注意:我只是模拟一下,真正的免登陆不会讲用户名和密码存在Cookie而是将Uid(唯一表示用户的数据)存在Cookie中,通过Uid找到对应用户将用户名、密码存在Session对象当中。
1.第一次访问登录界面并且用户名和密码匹配就获取用户数据保存到Cookie(用户名、密码)里面并创建Session对象保存信息到服务端。
下次再访问登录界面的网址就先判断Cookie是否为空,不为空跳转到首页。

2.当再一次访问登录页面的时候判断Cookie或者Session的某个属性是否为空,如果为空就不做处理让它登录,否则重定位到首页(登录成功界面)

判断Cookie是否为空

1.为空跳到登录界面

2.不为空浏览人数+1跳到展示界面

登录成功添加数据到Session

 首页判断

利用Session实现三天免登陆的更多相关文章

  1. Session的应用——三天免登录

    1.使用Cookie实现的登录的不足: protected void doGet(HttpServletRequest request, HttpServletResponse response) t ...

  2. Cookie俩步操作实现n天免登陆

    实现这个功能主要思路是:在登录成功的时候去给用户名和密码加上Cookie,将他们的值存在Cookie中,为了下次登录记住用户名和密码,然后在登录界面,获取所有的cookie,然后将值一一遍历出来.和用 ...

  3. 如何实现免登陆功能(cookie session?)

    Cookie的机制 Cookie是浏览器(User Agent)访问一些网站后,这些网站存放在客户端的一组数据,用于使网站等跟踪用户,实现用户自定义功能. Cookie的Domain和Path属性标识 ...

  4. 使用session实现网站N天免登陆()

    问题描述: 一些网站的N天之内免登陆实现方式. 方式一: 首先想到的是使用cookie保存用户登录信息,设置有效期,在用户下次访问时免去登录环节,直接通过cookie获取用户信息. 方式二: 方式二: ...

  5. [linux]阿里云主机的免登陆安全SSH配置与思考

    公司服务器使用的第三方云端服务,即阿里云,而本地需要经常去登录到服务器做相应的配置工作,鉴于此,每次登录都要使用密码是比较烦躁的,本着极速思想,我们需要配置我们的免登陆. 一 理论概述 SSH介绍 S ...

  6. 项目总结之Oauth2.0免登陆及相关知识点总结

    简介Oauth2.0授权步骤 授权码模式的基本步骤 原文链接地址 (A)用户访问客户端,后者将前者导向认证服务器. (B)用户选择是否给予客户端授权. (C)假设用户给予授权,认证服务器将用户导向客户 ...

  7. JavaWeb 08_JSP+Dao+Bean+Servlet 实现登录注册(连接数据库,验证码登录,两周内免登陆等功能)

    一.数据库db_01   表usert   字段username,password 二. 目录 三. 配置信息 四. 代码 index.jsp <script type="text/j ...

  8. 2015.4.21 实现一般免登陆,微博QQ分享,字体自适应等

    1.实现一般的登录验证和免登陆: 解决方法:node方法代码,nodeJS实现的session模块,不完整,但能用,仅供参考. 语言无所谓,session的机制都是一样的,实现不一样而已,:   2. ...

  9. [saiku] 免登陆进入管理后台

    上一篇分析了介绍了如何简化和修改saiku的界面[http://www.cnblogs.com/avivaye/p/4877882.html] 这一篇说明下如何去掉免登陆进入saiku 管理台 1.修 ...

随机推荐

  1. 清空表单 autocomplete="off"

    清空表单 autocomplete="off" <form action="/sm/baziqiming.aspx" method="post& ...

  2. DBC物品中打包物品参数设置

    DBC库中添加某物品包或捆,主要修改以下这两地方: 物品DBC: Stdmode字段 填写31表示捆或包   Shape字段 表示解开后的物品,填写时需要先在你的服务端文件里面找到UnbindList ...

  3. 微信+QQ跳转

    加到对应页面的</body> 上面,或者<head> </head>之间 <script type="text/javascript"&g ...

  4. KK音标

    目录 KK音标 参考 音标发音 音标口诀 五个规则 KK音标

  5. Codeforces Round #576 (Div. 2) 题解

    比赛链接:https://codeforc.es/contest/1199 A. City Day 题意:给出一个数列,和俩个整数\(x,y\),要求找到序号最靠前的数字\(d\),使得\(d\)满足 ...

  6. 「CF859E」Desk Disorder

    传送门 Luogu 解题思路 一眼想到二分图:但是求不了最大匹配方案数 oho. 于是考虑这么建图: 直接将一个人可以去的两把椅子连边,然后原图中的2n个点就会形成许多联通块,这个可以分步计数. 又因 ...

  7. 【Go语言系列】1.4、GO语言简介:第一个Go语言程序

    接下来我们来编写第一个 Go 程序 hello.go(Go 语言源文件的扩展是 .go),代码如下: // 声明 main 包 package main import ( "fmt" ...

  8. 关于报错:Warning: Cannot modify header information - headers already sent by (output started at

    8月5日,第一个项目即将完成,测试时,发现登录功能会出现小问题:记住密码的时候会报错 Warning: Cannot modify header information - headers alrea ...

  9. Bugku - CTF加密篇之聪明的小羊(一只小羊翻过了2个栅栏)

    聪明的小羊 一只小羊翻过了2个栅栏 KYsd3js2E{a2jda}  

  10. 吴裕雄--天生自然TensorFlow2教程:单输出感知机及其梯度

    import tensorflow as tf x = tf.random.normal([1, 3]) w = tf.ones([3, 1]) b = tf.ones([1]) y = tf.con ...