session简介
来源:互联网 发布:angular.js中文社区 编辑:程序博客网 时间:2024/05/28 04:55
session简介:
session,中文常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话是从拿起带你嗨拨号到挂断电话这中间的一系列过程可以称之为一个session。
session在WEB开发环境下的语义又有了新的扩展,它的含义是指一类用来在客户端和服务器端之间保持状态的解决方案。有时候session也用来指这种解决方案的存储结构。
session机制
session机制采用的是在服务器端保持HTTP状态信息的方案。
服务器使用一种类似于散列表的结构来保存信息。当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否包含了一个session标识(即sessionid),如果已经包含一个sessionid则说明以前已经为此客户创建过session,服务器就按照sessionid把这个session检索出来使用。如果客户请求不包含sessionid,则为此客户创建一个session并为此客户创建一个session并且生成一个与此session相关联的sessionid,这个sessionid将在本次响应中通过cookie的方式返回给用户端保存。
保存sessionid的几种方式
保存sessionid的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照骨规则把这个标识发送给浏览器。
由于cookie可以被人为的禁用,必须有其他的机制以便在cookie被禁用时仍然能够把sessionid传递回服务器,经常采用的一种技术叫做URL重写,就是把sessionid附加在URL路径的后面,附加的方式也有两种,一种是作为URL路径的附加信息,另一种是作为查询字符串附加在URL后面。网络在整个交互过程中始终保持状态,就必须在每个客户端可能请求的路径后面都包含这个sessionid。
session cookie
session通过sessionid来区分不同的客户,session是以cookie或URL重写为基础的,默认使用cookie来实现,系统会创造一个名为SESIONID的输出cookie,这称之为session cookie,以区别persistent cookies(也就是我们常说的cookie),sessioncookie是存储于浏览器内存中,并不是写到硬盘上,通常看不到SESSIONID,但是当把浏览器的cookie禁止后,web服务器会采用URL重写的方式传递SESSIONID,这时地址栏可以看到。
session cookie针对某一次会话而言,会话结束(session cookie也就随着消失了,而persistent cookie只是存在于客户端硬盘上的一端文本。
关闭浏览器,只会使浏览器端的内存里的session cookie消失,但不会使保存在服务器端的session对象消失,同样也不会使已经保存到硬盘上的持久化cookie消失。
持久化session cookie:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'session1.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> <% //持久化session Cookie cookie=new Cookie("JSESSIONID",session.getId()); cookie.setMaxAge(30); %> <%=session.getId() %> </body></html>
第一次打开:
再次打开(30秒以内):
- session简介
- session简介
- session简介
- session简介
- session简介
- session 简介
- session简介
- Session简介
- session简介
- session简介
- session简介
- session简介
- session简介
- Session简介
- cookie简介和session简介
- .net Session模型简介
- Session模型简介
- .net Session模型简介
- HDU2709
- request和session的用法
- 用javamail发送带附件的邮件
- 每日英语阅读(六十三)
- kaggle机器学习竞赛冠军及分享
- session简介
- maven相关使用
- You only look once:YOLO
- elastic search 基本操作
- 提示错误:arm-linux-gcc: Command not found
- Linux常用命令大全
- 开始进行AI学习
- 如何成为自己所在领域内前1%的顶尖人才? 凤凰科技 09-29 07:42 原标题:如何成为自己所在领域内前1%的顶尖人才? 有时你会觉得,可能你永远也实现自己的梦想。你清楚地知道自己想做什么,但有
- Leetcode题解-617. Merge Two Binary Trees