什么是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. source insight 编译后出现停止工作解决方法

    解决方法: 工程的路径不要有中文,都用英文

  2. 牛客新年AK场之模拟二维数组

    链接:https://ac.nowcoder.com/acm/contest/3800/D来源:牛客网 题目描述 Rinne 喜欢使用一种奇怪的方法背单词,现在这些单词被放在了一个 n×mn \tim ...

  3. FYF的煎饼果子

    利用等差数列公式就行了,可以考虑特判一下m >= n($ m, n \neq 1 $),这时一定输出“AIYAMAYA”. #include <iostream> using nam ...

  4. P1426

    和上次的小鱼题差不多,但多了一些条件. 先把游到 $ s - x $ 米是第 $ a_i $ 秒求出来,然后判断之后在第 $ a_{i + 1} $ 秒内游的距离是否 $ \geq 2x $ ,大于就 ...

  5. SEO 建站过程复盘

    今天在A5看到一篇关于一个牛站的复盘,整个建站过程值得借鉴. https://www.admin5.com/article/20200218/943930.shtml

  6. Centos610 Oracle 监听文件配置参考

    lister.ora配置参考 # listener.ora Network Configuration File: /home/oracle/app/oracle/product//dbhome_1/ ...

  7. MongoDB - 运行

    运行 mongod --dbpath (mongod is the "Mongo Daemon") 在shell用mongo或者用studio 3t可视化连接 创建用户 db.cr ...

  8. Qt应用程序的打包

    Windows系统下打包: qt用realse版本编译然后打包发行 debug编译后的文件比realse版本大很多先在编译好的debug或者realse执行程序的目录下将执行该城西对应的所有dell文 ...

  9. ETCD成员维护

    # For each machine TOKEN=my-etcd-token-1 CLUSTER_STATE=new NAME_1=etcd-node-1 NAME_2=etcd-node-2 NAM ...

  10. 【SSM 下载】下载文件

    111111111 /** * 导出客户数据 */ @RequestMapping("exportCustomer") public ResponseEntity<Objec ...