JavaEE复习三
Http协议是基于请求/响应模式、无状态的协议;所有请求时相互独立的、无连续的;服务器无法记住与识别用户。
对于简单的页面浏览或信息获取,http协议可以完全胜任;对于需要提供客户端和服务器端交互的网络应用则必须记住客户端状态。
会话就是一个连续不断的在在客户端和服务器端进行请求响应的一系列交互。
会话跟踪就是在这些请求和响应中维护需要的数据信息,使得这些相关的请求和响应得到正确的运作。
会话的实现过程:
- 当服务器端接收到客户端的首次请求时,服务器初始化一个会话并分配给该会话一个唯一标识符
- 在以后的请求中,客户端必须将唯一标识符包在请求中,服务器根据此标识符将请求与对应的会话联系起来。
实现会话跟踪的技术:
- 使用Cookie:所有的Http消息,不管是请求还是响应均包含头信息,由浏览器存储在客户端机器上的头信息就称作Cookie,以“属性=属性值;..”方式组成的文本信息;优点:简单性、基于文本的key-value对
- 创建Cookie : //Cookie c =new Cookie("userId","a1234");
- 设置最大时效:c.setMaxAge(60*60*24*7);
- 把cookie放入到http响应中:response.addCookie(c);
- 从客户端读取cookie:Cookie[] cookies=request.getCookies(); if(cookies!=null){for(int i =0;i<cookies.length;i++){Cookie cookie =cookies[i]; if(cookieName.equals(cookie.getName())){//do something with(codeValue)}}}
- cookie的属性:
- getMaxAge(); //设置cookie到期时间
- getName(); //读取cookie的名称
- getValue(); //读取/设置与cookie关联的值
- URL重写:
- 优点:必须对所有指向您的网站的url进行编码;所有页面必须动态生成;不能使用预先记录下来的url进行访问
- 缺点:cookie被禁用或者根本不支持的情况下依旧能够功能
- 隐藏的表单域
- <input type="hidden" name="session" value="..."/>
- 优点:cookie被禁用或者根本不支持的情况下依旧能够工作。
- 缺点:所有的页面必须是表单提交之后的结果。
- 会话对象生存于服务器上;会话自动通过cookie或url重写与客户关联起来,允许我们将任何对象存储到会话中
- HttpSession
- servlet容器提供httpsession接口来代表客户端和服务器端的会话;当一个Servlet容器为客户端开始一个会话时,创建一个新的HttpSession对象,除了代表会话外,httpSession对象还可以用于存储与会话相关的信息
- httpSession会话跟踪基础:
- 访问会话对象,request.getSession();
- getAttribute
- setAttribute
- removeAttribute,invalidate
会话失效:
通过web.xml的<session-timeout>,由程序来结束会话httpSession接口提供了invalidate()
JavaEE复习三的更多相关文章
- javaEE复习重点个人总结
最近在学院或集队的群里看见最多的就是求javaEE大作业了,那么突然有感而发,写点参考性的期末复习总结. 第一章JavaEE 概述: 1:两层体系应用体系结构 安全性低,部署困难,消耗系统资源 2 三 ...
- C#复习三(Day 22)
哈哈,又到了总结的时间了.今天还是在继续复习C#的基础语法.这次总结主要以一下小程序为主. Split()的运用 123-456---789-----123-2把类似的字符串中重复符号去掉,得到123 ...
- Mac之OS系统下搭建JavaEE环境 <三> 之Eclipse 与 IntelliJ IDEA 的安装配置
三.Eclipse 与 IntelliJ IDEA 的安装配置 1.Eclipse的安装配置 1 下载eclipse 到官网 https://www.eclipse.org/downloads/ecl ...
- SQL复习三(子查询)
子查询 子查询就是嵌套查询,即select中包含这select,如果一条语句中存在着两个,或者两个以上的select,那么就是子查询语句了. 子查询出现的位置 where后,作为条件的一部分: fro ...
- JAVAEE第三周
2.背景:看到Session时,感到很熟悉,毕竟涉及到过类似的编程,用得最多的地点就是保存客户端的信息和记录,比如说你已经登陆过某个网站,下次访问时不想要麻烦的重新登陆你就就可以使用这个机制.Sess ...
- Linux 复习三
第三章Linux使用进阶 一.磁盘管理和文件系统 1.磁盘的基本概念:磁头(head).柱面(cylinder).扇区(sector) Linux系统中所有的设备被抽象成文件,存储在/dev目录下 设 ...
- C# 基础复习 三 XML操作
XML 可扩展标记语言(所有标签都是自己定义,没有固定格式) 如果要给XML规定格式,可以使用dtd (dtd是什么?你不会自己百度吗) XML主要用来存储数据 XML的要求: 根节点只能有一 ...
- java IO复习(三)
package com.zyw.io; import java.io.File; import java.io.FilenameFilter; import java.util.ArrayList; ...
- day29-python阶段性复习三
七.python打开文件方式 open r: 读的方式 w:已写的方式打开 a:以追加的方式 r+ 读写模式 w+ 读写 a+ 读写 rb:二进制读模式打开 wb:以二进制写模式打开 ab 二进制追加 ...
随机推荐
- GO的安装以及GoLand破解
GO的安装以及GoLand破解 GO的安装 GO语言中文网:GO语言中文网 go,GoLand,破解文件:JetBrains GoLand 2019.2.3 x64 提取码:ABCD(汉化文件也在其中 ...
- GeoServer style 配置样例
<?xml version="1.0" encoding="UTF-8"?> <StyledLayerDescriptor version=& ...
- springboot增加多端口管理
目标是这样的: 方法 方法还是比较简单的1.点击菜单栏:Views -> Tool Windows -> Services:中文对应:视图 -> 工具窗口 -> 服务:快捷键是 ...
- Codeforces 917C - Pollywog(状压 dp+矩阵优化)
UPD 2021.4.9:修了个 typo,为啥写题解老出现 typo 啊( Codeforces 题目传送门 & 洛谷题目传送门 这是一道 *2900 的 D1C,不过还是被我想出来了 u1 ...
- java数组中Arrays类
使用Arrays类之后要先导入包,即在开头添加这行: import.java.util.Arrays 1,排序:Arrays.sort(数组名) 排序后为数组升序. 2,将数组转换成字符串:Array ...
- web性能测试工具——http_load
http_load是一款基于Linux平台的web服务器性能测试工具,用于测试web服务器的吞吐量与负载,web页面的性能. http_load是基于linux.unix平台的一种性能测工具 它以并行 ...
- 31-Longest Common Prefix
Longest Common Prefix My Submissions Difficulty: Easy Write a function to find the longest common pr ...
- C语言中内存对齐与结构体
结构体 结构体是一种新的数据类型,对C语言的数据类型进行了极大的扩充. struct STU{ int age; char name[15]; }; struct STU a; //结构体实例 str ...
- Spring 注解开发
目录 注解开发简介 常用注解 启用注解功能 bean 定义:@Component.@Controller.@Service.@Repository bean 的引用类型属性注入:@Autowired. ...
- 前后端分离进阶一:使用ElementUI+前端分页
前两篇入门:前后端分离初体验一:前端环境搭建 前后端分离初体验二:后端环境搭建+数据交互 参考:https://www.bilibili.com/video/BV137411B7vB B站UP:楠哥教 ...