Servlet总结1

本文介绍了Servlet技术的基础概念,包括Servlet的执行原理、生命周期及其组成部分如ServletConfig和ServletContext的作用。此外,还详细阐述了如何通过配置文件web.xml来设置上下文参数。
摘要由CSDN通过智能技术生成

Servlet总结1

一、Servlet技术

1.1 概述

  • Servlet是JavaEE规范之一。规范就是接口。
  • Servlet是JavaWeb三大组件之一。三大组件分别是:Servlet程序、Filter过滤器、Listener监听器。
  • Servlet是运行在服务器上的一个java小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。

1.2 执行原理

  1. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径。
  2. 查找web.xml文件,是否有对应的< url-pattern >标签体内容。
  3. 如果有,则在找到对应的< servlet-class >全类名。
  4. tomcat会将字节码文件加载进内存,并且创建其对象。
  5. 调用其方法。

1.3 Servlet的生命周期

  1. 执行Servlet构造方法
    • 构造方法只有第一次访问,创建Servlet程序时会调用。
  2. 执行init()初始化方法
    • Sevlet被创建时调用,只执行一次
  3. 执行Service()方法
    • 每次访问Servlet时,Service方法都会被调用一次。
  4. 执行destroy()销毁方法
    • Servlet被销毁时执行。服务器关闭时,Servlet被销毁.
    • 只有服务器正常关闭时,才会执行destroy方法。
    • destroy方法在Servlet被销毁之前执行,一般用于释放资源

二、ServletConfig类

  • ServletConfig是Servlet程序的配置信息类。

ServletConfig类的三大作用

  1. 可以获取Servlet程序的别名 servlet-name的值。
  2. 获取初始化参数 init-param。
  3. 获取ServletContext对象。

补充:

  1. Servlet程序和ServletConfig对象都是由Tomcat负责创建,我们负责使用。
  2. Servlet程序默认是第一次访问的时候创建,ServletConfig是每个Servlet程序创建时,就创建一个对应的ServletConfig对象。

三、ServletContext类

  • ServletContext是一个接口,它表示Servlet上下文对象。
  • 一个web工程,只有一个ServletContext对象实例。
  • ServletContext对象是一个域对象。
  • ServletContext是在web工程部署启动的时候创建。在web工程停止的时候销毁。

域对象:

  1. 域对象,是可以像Map一样存取数据的对象。
  2. 这里的域指的是存取数据的操作范围,整个web工程。

Map集合与域对象的比较

存数据取数据删除数据
Mapput()get()remove()
域对象setAttribute()getAttribute()removeAttribute()

ServletContext类的四个功能

  1. 获取web.xml配置的上下文参数 context-param

    ServletContext context = getServletContext();
    String username = context.getInitParameter("username");
    String password = context.getInitParameter("password");
    System.out.println(username);
    System.out.println(password);
    

    配置文件xml

    <context-param>
            <param-name>username</param-name>
            <param-value>root</param-value>
        </context-param>
        <context-param>
            <param-name>password</param-name>
            <param-value>123456</param-value>
        </context-param>
    
  2. 获取当前的工程路径,格式:/工程路径

    System.out.println("当前工程路径:"+context.getContextPath());
    
  3. 获取工程部署后在服务器硬盘上的绝对路径(真实路径)

    System.out.println("工程的真实路径是:"+context.getRealPath("/"));
    
  4. 存取数据

    //存数据
    context1.setAttribute("key1","value1");
    //取数据
    System.out.println("context1 中获取域数据key1的值是:"+context1.getAttribute("key1"));
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值