Here’s how you get a session ID from the request:
HttpSession session = request.getSession();
Here’s what this does for you:
If the session includes a session ID cookie
then find the session matching that session ID
else (no session ID cookie or no matching session
)
create a new session
(如果浏览器第一次登陆,则request.getSession()会去创建一个新的HttpSession对象。服务端是如何判断浏览器第一登陆的呢? 就是看下请求报文中有没有JSESSION字段。如果有,还不能判断就一定是非第一次登陆,因为浏览器不一定按规矩出牌,甚至JSESSION对应的cookie有些浏览器是允许用户事先配好的。所以,非第一次访问的条件是“请求中带有JSESSION,而且该JSESSION的号码ID的确是服务器生成的
,而且在服务端还没有过期。”。所以,一般JSESSION的号码应该要弄成不容易被猜出来。)
==Java’s session tracking API, II
Here’s how you send a cookie in the response:
HttpSession session = request.getSession();
What this does for you:
1、Creates a new HttpSession object, or retrieves a previous one
2、Creates a unique session ID (在服务端保存在HttpSessionContext中,是个从ID到HttpSession的映射。)
3、Makes a new cookie object
Associates the cookie with the session ID
(HttpSession的ID要依靠cookie传递给客户端)
Puts the cookie in the response (under the Set-Cookie header)
Notice that:
This is exactly the same call as in the previous slide
The message is sent to the request, not the response
==Using an HttpSession
session.setAttribute(String name, Object value)
You can save objects in an HttpSession
object = session.getAttribute(String name)
You can retrieve your saved objects by name
Enumeration e = session.getAttributeNames()
You can find the names of all your objects
session.removeAttribute(String name)
You can get rid of an object you no longer need
boolean session.isNew()
true if the session is newly created, rather than retrieved
String id = session.getId()
You can get the session ID (if you’re debugging, or just curious)
==Quitting an HttpSession
session.invalidate()
Quits the session and unbinds any objects in it
milliseconds = session.getCreationTime()
(since midnight January 1, 1970 GMT)
milliseconds = session.getLastAccessedTime()
(again, since 1970)
session.setMaxInactiveInterval(int seconds)
(最大非活动间隔)
Sets the time until the session is automatically invalidated
int seconds = session.getMaxInactiveInterval()
So the Session API does nearly everything you need!
分享到:
相关推荐
【ejb入门录像 sessionBean】是针对企业级Java应用(Enterprise ...通过观看"ejb入门录像.avi",初学者将能够了解并掌握EJB中的Session Bean的基本概念和操作,为进一步学习和开发企业级Java应用打下坚实的基础。
这个“nodeJS基础入门”教程很可能是为了帮助初学者掌握 Node.js 的基本概念、语法以及如何与 MySQL 数据库进行交互,从而实现一个简单的个人博客系统。下面将详细阐述 Node.js 的核心特性、模块化开发以及如何结合...
"Maven3应用入门session.pptx"文件可能包含了关于Maven3的更多细节,如POM的配置示例、生命周期的详细解释、插件的使用方法以及实际项目中的最佳实践。通过阅读这个PPT,你可以深入理解Maven3的工作原理,并学会如何...
### PHP零基础入门到原生项目开发【完整版】 #### 步骤1: PHP初体验 **PHP运行环境** - **XAMPP/LAMP/WAMP:** 这些是集成环境,包含了Apache服务器、PHP解析器及MySQL数据库。适用于不同操作系统(如Windows、...
**Java基础入门之Hibernate入门** Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在关系数据库中存储和管理对象的便捷方式。在这个“Java基础入门之Hibernate入门”中,我们将深入理解...
【JavaWeb程序设计入门课件Session对象共9页.pdf】 在JavaWeb开发中,Session对象是HTTP协议无状态特性的补充,它为客户端与服务器端之间提供了存储会话级数据的机制。本课件深入浅出地介绍了Session的概念、工作...
本资源摘要信息涵盖了 Spring Session 的基础知识和实践应用,旨在帮助初学者快速入门 Spring Session。 第1章 Session 会话管理概述 Session 机制是 Web 开发中不可或缺的一部分,用于记录用户的状态和相关数据。...
### jsp零基础入门 #### JSP简介 - **什么是JSP**: - Java Server Pages(JSP)是一种基于Java技术的服务器端脚本语言,用于生成动态网页内容。它将HTML、XML等静态内容与Java代码混合,使得开发者能够轻松地在...
### JSP 入门教程知识点概览 #### 1. JSP 概念与应用场景 - **JSP**(Java Server Pages)是一种基于Java技术的Web开发标准,它允许开发者在HTML页面中嵌入Java代码,从而使得动态内容的生成变得更为简便。JSP非常...
### Resin 入门基础教程知识点概述 #### 一、Resin 概览 - **Resin 特性** - Resin 和 Resin Professional 的功能对比:Resin 是一款高性能且灵活的 Java 应用服务器,适用于部署 Java Web 应用程序。它支持 JSP ...
这个"零基础Python爬虫从入门到精通教程"涵盖了Python基础、网络请求、HTML解析、数据提取、数据存储以及实战应用等多个方面,旨在帮助初学者系统地学习Python爬虫,逐步成为一名熟练的爬虫开发者。通过学习,你将...
本教程“ASP基础入门课本配套教程1”旨在帮助初学者掌握ASP的基础知识,通过两个实例——在线考试系统和留言簿系统,深入浅出地讲解ASP的核心概念和技术。 在第1章“在线考试系统”中,我们将学习如何使用ASP来构建...
本资料旨在为初学者提供ASP.NET基础入门的知识点,帮助大家快速掌握这个强大的开发平台。 一、ASP.NET概述 ASP.NET是一个开源的Web开发平台,它包含了构建Web应用程序所需的所有服务,如HTTP管道、页面生命周期管理...
包括初识.PHP、PHP环境搭建和开发工具、PHP语言基础、流程控制语句、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、PHP与JavaScript交互、日期和时间、Cookie与Session、图形图像处理技术、文件系统、面向...
这个“flask基础入门教程的代码”是初学者学习Flask框架的绝佳资源,涵盖了从基本概念到实际应用的关键知识点。 首先,让我们了解一下Flask的核心概念: 1. **路由设计**:在Flask中,路由是通过装饰器定义的,...
一天学会ASP-动态网页编程基础入门,意味着我们将要学习ASP的基础概念、语法以及如何创建简单的网页应用。 首先,我们需要了解ASP的工作原理。ASP运行在Web服务器上,接收来自客户端(如浏览器)的HTTP请求,处理...
本文主要针对"Mybatis基础入门"进行详细讲解,帮助初学者理解并掌握Mybatis的核心概念和基本用法。 首先,我们来看`mybatis-config.xml`,这是Mybatis的全局配置文件,它定义了Mybatis运行时的基本环境。这个文件...
本教程将带你逐步走进MDK的世界,掌握STM32的基础知识。 一、MDK简介 MDK是由Keil提供的一款强大的嵌入式软件开发工具,它集成了编译器、调试器、IDE(集成开发环境)等多种功能,为开发者提供了高效便捷的开发环境...
这个基础入门教程,特别是对于那些从Flash转向ASP的初学者来说,将提供必要的指导来理解和掌握ASP的核心概念。 首先,我们要理解的是IIS(Internet Information Services),这是微软提供的一个强大的Web服务器软件...