JavaWeb——session对象

session对象
①Web应用中,会话指在一段时间内,一个用户通过浏览器与服务器(Java工程项目)之间进行的一系列的请求和响应的交互过程。在一个会话中,用户可以访问该Web应用系统中包括网页在内的多种资源。

②当用户(浏览器)向Web应用服务器发送第一次请求时,服务器会为该用户创建一个唯一的标识会话,会话一直延续到访问结束(浏览器关闭或用户长时间不访问Web应用)。JSP使用session对象表示会话,即将信息保存session对象中,方便用户在这个会话中随时获取

③浏览器关闭只是中断了和Web服务器的联系,但是session对象依然存在服务器端,如果超时,Web服务器将其删除,如果服务器关闭,则将对象序列化到SESSION.ser文件内,服务器重新启动,这个时候,下图中的SESSION.ser文件会消失,并且将该文件中的session对象重新反序列化,也就是重新转化成session对象。
(程序获取session对象的路径:首先启动服务器(没请求,没session,打开浏览器有session,输入完网址回车,就开始执行代码,发送了请求。有了session对象)有了session对象之后,关闭浏览器,session对象将存到SESSION.ser文件中,再次打开浏览器,会重新有了session对象,再将ID传递给服务器,之前存的session对象就没用了)
在这里插入图片描述
④session运行机制
1、用户(浏览器)向Web应用服务器发送第一次请求时,请求头部中不包含sessionID,则服务器会为该客户端创建一个新的session,并生成一个与此session对应的sessionID,然后将sessionID随着本次响应返回给客户端;
2、用户(浏览器)再次向Web应用服务器发送请求时,请求头部包含sessionID,则服务器首先会通过sessionID找到对应的session,此时sessionID不会再次随着本次响应返回给客户端;如果该session因超出时长而被Web服务器删除,则重新创建一个新的session,并生成一个与此session对应的sessionID,然后将sessionID随着本次响应返回给客户端;

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>moom</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <session-config>
  	<session-timeout>5</session-timeout>将时间设置为5分钟,5分钟后,服务器会删除session对象,需要重新创建session对象
  </session-config>
</web-app>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <%
    	String id = session.getId();
    %>
    
    <%= id %>   //在网页上输出显示出来<%= %>
</body>
</html>

运行结果
在这里插入图片描述
5分钟之后ID更新了
在这里插入图片描述
⑤当Web应用系统接收到客户端浏览器的请求时,首先检查服务器是否已经为这个客户端创建了session,即判断客户端的请求中是否包含了一个session ID(session唯一标识),如果包含sessionID,则服务器就会通过sessionID找到对应的session,以确定是这个客户端访问服务器;而如果客户端的请求中没有sessionID,服务器会为该客户端创建一个新的session,并生成一个与此session对应的sessionID,然后将sessionID随着本次响应返回给客户端。
⑥客户端没有禁用cookie的情况下,客户端使用cookie保存sessionID。如果cookie禁用,则会自动转化为用URL-rewriting(URL重写,URL中包含sessionID)技术实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值