Session机制使用的详细讲解

session的引入:

鉴于http是无状态的协议,当完成客户端和服务器的传递信息后,就断开之间的联系,这样就造成了怎么样在几个页面之间传递信息

比如客户端信息,或者假如是写一个购物程序,就要记得购物车里面的信息,jsp提供了四种方法来跟踪客户的状态

1:建立匿名的表格字段

2:使用url传递

3:使用持久化的cookies

4:使用session 的会话机制

相对于安全级别来说第四种最高了,session是指在一段时间内客户端和服务器之间的一连串的相关的交互过程。

在一个session中客户可能会访问不同的服务器资源,也可能会多次访问同一个页面。

sevlet容器为httpsession分配一个唯一的标识,成为sessionid,容器会把sessionid放在客户端的cookies中,每次客户端发出http请求的时候,servlet可以把httdivquest对象中读取sessionid。然后更具sessionid找到对应的session对象,从而取得客户端状态信息。

session的方法:

getid()取得session的id号。

setattribuate(string name,object obj)保存一对name、value对象

getattribute(String name)获取name的属性

isnew()判断session时候是新建的。

废除sesion对象的方法"

1:setmaxinactival()通过设置最大不活动时间

2:关闭客户端浏览器

3:调用session的invalidate()方法

如果客户端不支持cookies时,那么session的id号就不能保存,那么在java API中提出了一种跟踪session的方法,容器可以重写客户请求的url,把sessionid添加倒url中response.encodeurl("**.jsp");

session的高级主题:session的持久化当一个session开始时,容器会为之创建一个session对象,但是如果又10000个人同时登录呢,这时就要把信息从内存中转移到文件系统中或者数据库中,当需要访问的时候再调用倒内存中,提高内存的利用率,也便于恢复数据(故障会丢失信息)。

从内存到文件系统活着数据库,采用了java语言的对象序列化技术,把对象从文件活着数据库中提取到内存中使用了java语言提供的对象反序列化技术。

时间: 2025-01-20 13:57:41

Session机制使用的详细讲解的相关文章

c++异常处理机制示例及详细讲解_C 语言

这两天我写了一个测试c++异常处理机制的例子,感觉有很好的示范作用,在此贴出来,给c++异常处理的初学者入门.本文后附有c++异常的知识普及,有兴趣者也可以看看. 下面的代码直接贴到你的console工程中,可以运行调试看看效果,并分析c++的异常机制. 复制代码 代码如下: #include "stdafx.h" #include<stdlib.h> #include<crtdbg.h> #include <iostream> // 内存泄露检测机

java ClassLoader机制详细讲解_java

要深入了解ClassLoader,首先就要知道ClassLoader是用来干什么的,顾名思义,它就是用来加载Class文件到JVM,以供程序使用的.我们知道,java程序可以动态加载类定义,而这个动态加载的机制就是通过ClassLoader来实现的,所以可想而知ClassLoader的重要性如何. 看到这里,可能有的朋友会想到一个问题,那就是既然ClassLoader是用来加载类到JVM中的,那么ClassLoader又是如何被加载呢?难道它不是java的类? 没有错,在这里确实有一个Class

Java基础:JVM(Java 虚拟机)的详细讲解

可能有很多学习Java的朋友还不知道Java的运行原理.Java虚拟机是怎么工作的,本文将为你详细讲解(JVM)Java 虚拟机. 在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器.这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口.编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行.在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode),它不面向任何特定的处理器,只面向虚拟机.每一种平台的

实例详细讲解ASP教程之ASP中使用变量的方法

变量|教程 变量用于存储信息. 假如在子程序之外声明变量,那么这个变量可被ASP文件中的任何脚本改变.假如在子程序中声明变量,那么当子程序每次执行时,它才会被创建和撤销 实例: 声明变量 变量用于存储信息.本例演示如何声明变量,为变量赋值,并在程序中使用这个变量 <html><body><%dim namename="Donald Duck"response.write("My name is: " & name)%>&l

Discuz!X中SESSION机制实例详解_php实例

本文实例讲述了Discuz!X中SESSION机制.分享给大家供大家参考.具体如下: 在Discuz! X中一如继往的,SESSION 并没有使用 PHP 自带的 SESSION 机制,而是系统的一套自带的机制. 在数据库中可以看到有两个 SESSION 表: 一个是pre_common_adminsession,是管理员登录后台的 SESSION 表: 另一个是 pre_common_session 表,是所有用户在前台浏览页面时的 SESSION 表. 这两个表都是内存表(内存表的读写速度远

cookie和session机制之间的区别与联系

cookie|session|区别|cookie|session     具体来说cookie机制采用的是在客户端保持状态的方案.它是在用户端的会话状态的存贮机制,他需要用户打开客户端的cookie支持.cookie的作用就是为了解决HTTP协议无状态的缺陷所作的努力. 而session机制采用的是一种在客户端与服务器之间保持状态的解决方案.同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的.而ses

PHP的SESSION机制分析

本篇文章主要介绍一下php session技术方面的文章. 1.session.save_handler = files 1. session_start() (1)session_start()是session机制的开始,它有一定概率开启垃圾回收,因为session是存放在文件中,PHP自身的垃圾回收是无效的,SESSION的回收是要删文件的,这个概率是根据php.ini的配置决定的,但是有的系统是 session.gc_probability = 0,这也就是说概率是0,而是通过cron脚本

用Flash AS实现画图的详细讲解

用Action Script进行控制,可以随机画出各种图形,该教程为系列讲座,提供了许多很有用的AS代码-- 使用方法:把代码拷到帧中就可看到效果 用鼠标任意画线 效果:可按住鼠标任意画线,可作简单的涂鸭工具 代码: createEmptyMovieClip("xian",1);with (xian) { _root.onMouseMove = function() { if (draw) { _root.lineStyle(0,0x000000, 100); _root.lineTo

Android LibGDX游戏引擎开发教程(三) 示例代码详细讲解

承接了上一篇文章中关于环境搭建的简单示例,这一篇我会详细讲解FirstGame和HelloGameActivity类中 的代码. 一.ApplicationListener接口详解 1.简单代码示例,FirstGame.java: package com.example.hellolibgdx; import com.badlogic.gdx.ApplicationListener; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.gra