HTTP与会话的学习

一、HTTP协议

请求

1请求行

2、请求消息头

3、请求主体

响应

1、响应行

2、响应头

3、响应体

二、会话

        HTTP无状态:服务器无法判断两次请求是否为同一个客户端发过来的。

        因此通过会话跟踪来解决这个问题

  @Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取session,如果是客户端第一次向服务器端发送请求,则会创建一个新的sessionHttpSession session = req.getSession();System.out.println("session ID:"+session.getId());}

第一次发送请求时候,会分配给客户端一个Session,其id为:

当从浏览器刷新一次(在发送一次请求),session id的值没变,同时在发送请求时会带上最初分配的session,让服务器知道自己的SessionID

常用的一些API:

 2、Session的保存作用域

        

 sesssion保存作用域是和具体的一个session对应的

public class Demo04Servlet extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {HttpSession session = req.getSession();session.setAttribute("uname","linda");}
}public class Demo05Servlet extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {HttpSession session = req.getSession();Object uname = session.getAttribute("uname");System.out.println(uname);}
}

先用google浏览器访问demo04,会给分配一个sessionID并且把uname赋值为linda给这个客户端,之后只要使用Google访问demo5来获取uname的值,都是以此sessionID 来发送请求等操作(不断开连接),获取的都是linda

null的值为使用其他浏览器的时候,直接去访问demo05的时候输出的值,因为给这个客户端没有分配Session,并且也没有初始化uname的值,所以返回的是null

一个session的作用域在一个客户端内。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418049.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3650m5服务器内存选择 ibm_各大品牌服务器租用价格表明细(附详细表单)

企业在进行IT建设的花费肯定不少,其中就包括了服务器租用。那如何租到性价比高的服务器?可以先了解一下各大品牌的报价情况,对比服务器租用价格表,找到价格合适的。不过也不可一味的遵从低价格,毕竟一分钱一分货也是一…

服务器内部转发以及客户端重定向概念的学习

一、服务器内部转发 一次请求响应的过程,对于客户端而言,内部经过了多少次转发是不知道的。 既地址栏不会变化 二、客户端重定向 客户端向上面的组件发送请求,组件里由response.sendRedirect方法指向demo07,于是服务器端里上面的…

cad幕墙下料lisp_石材幕墙屋面不锈钢角钢接闪带施工方法

石材幕墙屋面不锈钢角钢接闪带施工方法 摘要:石材幕墙屋面接闪带传统安装方法采用镀锌圆钢、不锈钢管明敷或加接闪小针等防雷方式,安装后易产生变形、幕墙漏水等问题,锈蚀会污染石材表面,影响建筑立面效果,清洗幕墙困…

JavaWeb中水果库存系统的学习

一、编辑和修改特定的信息 我们想达到的效果为:在页面点击一个水果,然后对这个水果进行编辑,之后更新页面。 第一步: 在水果名称这里增加一个超链接,点击可以跳转到编辑的页面中, th:href"{...}&qu…

删不干净_“我劝你别删前任微信”

大家好,我是Lady Bird.几天前,我收到了前任测试单删的群发信息。看到他头像边亮起的红色数字一的瞬间,我才意识到分手之后我们再也没联系过。可能在很多人看来,留着对方微信就是危险信号。说实话,这事儿要放几年前&…

对于事务的认识

例子:当转账操作的时候,A用户转账给B用户,希望的结果是:A扣了钱,B加了钱;或者是A转账失败,B的钱数也没增加。 事务的处理原则:要么都执行,要么都不执行 理解:…

Spring中IOC与DI的学习

1、IOC 1.1步骤 2、DI 依赖注入 2.1步骤&#xff1a; 其中的set方法是IOC容器来调用的 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/…

Mybatis初始化配置

框架&#xff1a;jar包配置文件 一、添加依赖 在项目的pom.xml文件中添加mybatis依赖 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.1</version><scope>test</s…

用table展示树形结构数据_复习一下数据结构(二)——2.2 树形索引(23树)

普通树一个结点可以有多个孩子&#xff0c;但它本身只能存储一个元素&#xff0c;而二叉树结点最多只能有两个&#xff0c;这对于元素非常多的时候&#xff0c;会使得树的度或者是高度会非常大。这就使得内存存取外存的次数会增多&#xff0c;一旦涉及到外部存储设备&#xff0…

Spring中整合mybatis包

一、把对应的依赖都添加上&#xff1a; mysql、mybatis、spring的依赖&#xff08;都是基础的&#xff09; <dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.17<…

dfa转正则表达式_从0到1打造正则表达式执行引擎(二)

本文原文地址https://blog.csdn.net/xindoo/article/details/106458165在上篇博客从0到1打造正则表达式执行引擎(一)中我们已经构建了一个可用的正则表达式引擎&#xff0c;相关源码见https://github.com/xindoo/regex&#xff0c;但上文中只是用到了NFA&#xff0c;NFA的引擎建…

AOP的学习

注意&#xff1a;不惊动原始设计 一、部署依赖 AOP开发默认导入 <dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.4</version></dependency> 二、具体步骤 Aspect 告诉Sprin…

选择题_一级造价师选择题的分值是多少

一级造价工程师考试的选择题分为单选题和多选题&#xff0c;每科单选题为60题&#xff0c;每题一分&#xff1b;多选题为20题&#xff0c;每题两分&#xff0c;总分100分。一级造价师选择题的分值一级造价工程师考试共有《建设工程造价管理》、《建设工程计价》、《建设工程技术…

2017年什么命_所谓“佛系”,真的不是什么都不做!

文 | 新宇姐姐 猫咪de生活观在这匆忙的世道中&#xff0c;人心浮躁&#xff0c;急不可耐。这喧嚣的世界车水马龙&#xff0c;我们为了生活&#xff0c;三点一线的忙碌奔波。城市很繁华&#xff0c;容易让人迷失&#xff1b;尘世很奔波&#xff0c;容易让人疲倦。不由得让我们想…