学习web的Listener监听器的时,监听域对象创建的监听器。通过监听器重新分析着三个对象的生命周期,清晰明了。

首先域对象的监听器有三个ServletContextListene、ServletRequestListene和HttpSessionListene

实现三个接口,每个接口有两个方法,创建方法和销毁方法,此处不详细写出,具体方法自行参照API帮助文档

servletContext既web应用加载到tomcat的时候被创建,从服务器卸载的时候被销毁。

servletRequest是发出请求的时候就被创建,请求结束就被销毁.需要注意的是请求转发的时候request是同一个请求,并不会创建新的请求,但是当重定向的时候就是一个新的请求。

在jsp页面中的超链接到另一个jsp页面也是重定向,此时不能获取到request域中设置的属性。

Httpsession在第一次访问web页面或servlet时并且需要一个session时被创建,session比较绕,如果在jsp页设置session= “false”,访问也不会创建一个session。

在jsp中创建session的HttpSession session = new HttpSession();就创建了一个session。

当session结束设置的最大存活时间的时候也会被销毁,直接调用销毁方法也会直接销毁。

PS:这三个创建的顺序->ServletContext->ServletRequest->HttpSession因为session是通过请求将Cookie头给带回。JSESSIONID

ServletContext、ServletRequest和HttpSession的生命周期的更多相关文章

  1. servletContext和request对象的生命周期比较

    ServletContext: 创建:服务器启动 销毁:服务器关闭 域的作用范围:整个web应用 Request: 创建:访问时创建request 销毁:响应结束request销毁 域的作用范围:一次 ...

  2. JSP Servlet WEB生命周期

    [转载] JavaWeb的生命周期是由Servlet容器来控制的总的来说分为三个阶段1.启动阶段:加载web应用相关数据,创建ServletContext对象,对Filter和servlet进行初始化 ...

  3. Servlet 执行流程 生命周期 ServletConfig 线程安全

    Day34 servlet 三.如何使用Servlet 1.继承GenericServlet类(通用) (1)GenericServlet类有一个关键的设计,定义了一个私有的ServletConfig ...

  4. Spring之Bean的作用域与生命周期

    在前面博客中提到容器启动获得BeanDefinition对象中有一个scope 属性.该属性控制着bean对象的作用域.本章节介绍Bean的作用域及生命周期,了解bean是怎么来的又怎么没的. 一.B ...

  5. SpringBean生命周期及作用域

    bean作用域 在Bean容器启动会读取bean的xml配置文件,然后将xml中每个bean元素分别转换成BeanDefinition对象.在BeanDefinition对象中有scope 属性,就是 ...

  6. [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  7. Servlet生命周期 Servlet获取配置信息 ServletContext

    一.Servlet生命周期 实例化 ——> 初始化 ——>  服务 ——>  销毁 出生:(实例化 然后 初始化)tomcat第一次访问,Servlet就出生(默认情况下) 活着:( ...

  8. Servlet(简介,请求参数,页面跳转,生命周期,创建,配置,ServletContext,线程)

    1.Servlet简介 servlet是java servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序, 主要功能在于交互式浏览和修改数据,生成动态的web内容 服务端运行的 ...

  9. servlet的生命周期与运行时的线程模型

    第 14 章 生命周期 注意 讲一下servlet的生命周期与运行时的线程模型,对了解servlet的运行原理有所帮助,这样才能避免一些有冲突的设计. 如果你不满足以下任一条件,请继续阅读,否则请跳过 ...

随机推荐

  1. 华为S5700设置vlan,并绑定电脑的IP地址与mac地址。

    要求是设置两个vlan,10和20.交换机下的10网段和20网段的电脑在两个vlan当中.20网段的ip地址与mac地址绑定,从而实现下面的电脑更改ip地址或者不明来源的电脑不能连接到交换机. 1.s ...

  2. test--3

    <script type="text/javascript">// <![CDATA[$(function () { if (isLogined &&am ...

  3. java第六次课后作业

    class Check{ public boolean validate(String name, String password){ if(name.equals("shenhaochen ...

  4. C语言常见易错题集(分析及解答)(仅可用于交流,勿用于商业用途)

    1.能正确表示a和b同时为正或同时为负的逻辑表达式是( D  ). A.(a>=0||b>=0)&&(a<0||b<0)             B.(a> ...

  5. R语言求根

    求根是数值计算的一个基本问题,一般采用的都是迭代算法求解,主要有不动点迭代法.牛顿-拉富生算法.割线法和二分法. 不动点迭代法 所谓的不动点是指x=f(x)的那些点,而所谓的不懂点迭代法是指将原方程化 ...

  6. fineui排序问题

    后台: private void BindGrid()    { // 1.获取当前分页数据        DataSet dataSet = GetPagedDataTable();        ...

  7. ubuntu安装后问题

    ubuntu安装后桌面显示不正常,出现闪屏,或者是缺图标的问题多数是ubuntu的3D加速显示问题 解决方法,vmware workstations 中的菜单栏:虚拟机->设置->显示器- ...

  8. 进制与ASCII码转换

    LabeledEdit4.Text := chr(); // 用十进制方式赋值: ASCII码转换为字符 65 -> A LabeledEdit4.Text := #; // 用十进制方式赋值: ...

  9. shell练习题6

    需求如下: 有日志access.log,部分内容如下: 127.0.0.1 - - [03/Jul/2018:00:00:01 +0800] "GET / HTTP/1.1" 20 ...

  10. Problem 1: Multiples of 3 and 5

    小白一枚,python解法,共同学习,一起进步. Problem 1: Multiples of 3 and 5 If we list all the natural numbers below 10 ...