利用Session实现三天免登陆

什么是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的某个属性是否为空,如果为空就不做处理让它登录,否则重定位到首页(登录成功界面)

登录成功添加数据到Session

首页判断

原文地址:https://www.cnblogs.com/cstdio1/p/11668121.html

时间: 2024-10-27 01:38:56

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

利用session+application+cookie 实现单态登陆,且解决浏览器意外关闭的问题

最近在帮朋友做一个购物网站,里面涉及到了登陆的问题.其中包括后台管理员的登陆和用户的登陆. 在这个网站中,设计了后台管理员单态登陆,即一个账号只能有一个登陆实例.很容易想到的就是用application实现,在application中放置一个hashmap,储存登陆的管理员信息.同时为了实现登陆超时,也在session中存放登陆对象,通过设置session的listener监控session的消亡,移除application中的对象.那么问题来了,如果用户因为断电或者任性,非法关闭了浏览器,再打

Session的应用——三天免登录

1.使用Cookie实现的登录的不足: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection con=null; login log= null; String account=request.getParameter("username");//获得表单数据只在此Servlet起作用

session跟cookie的记住登陆名

最近在做ASP.NET的项目时,接触到了登陆权限模块,所有总结了一下登陆时用到的知识和方法技巧. 如图说明:实现的效果如图,由于验证码验证比较简单这里就不介绍了 首先用代码生成器生成项目,以三层为例进行说明, 那么我以BlogUser表为例,然后就会有一个BlogUser实体类对象. 登陆的思想:当我们登陆成功的时候要将实体存入到session中,免登陆也是这个思想,只不过是当我们勾选免登陆的时候,第一次登陆进去,那么将用户的id存入到cookie中去,通过用户的id查找用户的实体,再赋值给se

利用session 会话分析是否登陆,进行登陆权限管理

需求:网站只有在登陆的前提下可以访问其他网页,否则就跳转到登陆页面: 分析: 1,每个网页都要检查是否登陆,可以利用拦截器进行拦截处理: 2,登陆的时候,把当前的sessionid存放起来,通过这个sessionid对应一个用户对象: 3.整个会话结束,要去除session,可以利用session监听器进行处理: 具体做法: 建立一个管理seesion的对象,ClientManager单例模式建立 建立一个Client用户对象 建立一个session监听器,会话结束,去除session 建立一个

利用session完成用户登陆

1 package cn.itcast.cookie; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 import java.util.List; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.http.Cookie; 9 import javax.servlet.http.HttpServlet; 10 import javax

利用session防止表单重复提交

转自:http://www.cnblogs.com/xdp-gacl/p/3859416.html 利用Session防止表单重复提交 对于[场景二]和[场景三]导致表单重复提交的问题,既然客户端无法解决,那么就在服务器端解决,在服务器端解决就需要用到session了. 具体的做法:在服务器端生成一个唯一的随机标识号,专业术语称为Token(令牌),同时在当前用户的Session域中保存这个Token.然后将Token发送到客户端的Form表单中,在Form表单中使用隐藏域来存储这个Token,

saiku - 免登陆进入管理后台

上一篇分析了介绍了如何简化和修改saiku的界面[http://www.cnblogs.com/avivaye/p/4877882.html] 这一篇说明下如何去掉免登陆进入saiku 管理台 1.修改applicationContext-saiku-webapp.xml <security:intercept-url pattern="/rest/**" access="IS_AUTHENTICATED_ANONYMOUSLY" /> <secu

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

1.实现一般的登录验证和免登陆: 解决方法:node方法代码,nodeJS实现的session模块,不完整,但能用,仅供参考. 语言无所谓,session的机制都是一样的,实现不一样而已,: 2.字体到底能不能自适应? 解决方法:em,rem和动态获取后相对设置 解析:em和rem只是对于父级和整个页面而言,用rem一般会设置body{font-size:62.5%},而em会在标签的父级写:动态获取屏幕大小再计算font-size,这样你就可以按照设计图1比1的进行制作. 特别注意:给html

python利用django实现简单的登录和注册,并利用session实现了链接数据库

利用session实现与数据库链接,登录模块(在views.py) def login(request): # return HttpResponseRedirect('/') # 判断是否post方式,如果是则进行下面的表单处理 if request.method == 'POST': rs = Users.objects.filter(email=request.POST.get('email'), #django的filter方法是从数据库的取得匹配的结果,返回一个对象列表,如果记录不存在