servlet 生命周期-servletcontext p1-p6

1.servlet生命周期:

在这里插入图片描述

2.servlet生命周期方法执行流程:

在这里插入图片描述
映射部分(web.xml):

<servlet>
    <servlet-name>Hello</servlet-name>
    <servlet-class>oh.helloServlet</servlet-class>  <!-- 注册 -->
</servlet>

<servlet-mapping>
    <servlet-name>Hello</servlet-name>   <!-- 映射 -->
    <url-pattern>/Hello</url-pattern>   <!-- 设置servlet匹配的唯一的url -->
</servlet-mapping>

对应的生命周期流程(.java):

public class helloServlet implements Servlet {
    public helloServlet() {
        System.out.println("实例化");
    }

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("初始化");
    }

    @Override
   public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("服务");
    }

    @Override  
    public void destroy() {
    System.out.println("销毁");
    }

    @Override
    public String getServletInfo() { 
    //说明性质的信息,如:servlet版本,servlet作者名,servlet所在的应用等
        return null;
    }
    @Override
    public ServletConfig getServletConfig() {

       return null;
     }

运行顺序:
在这里插入图片描述
在刷新页面时会再次执行service:
在这里插入图片描述
在关闭程序时会调用destroy:
在这里插入图片描述

3.servlet的特征:

在这里插入图片描述
其中,只有很重要的servlet才会在web容器启动时实例化,这样可以加快第一次执行的速度。

4.在启动时实例化的方法:

在注册servlet时加上

<load-on-startup>1</load-on-startup>  <!-- 设置优先级-->

1.数字表示servlet实例化的优先级,越小越先,要求>=0
2.在有多个servlet时使用

5.servlet里的两个map

在这里插入图片描述
在这里插入图片描述

6.servletconfig(servlet配置信息,对单个servlet有效)

1.servletconfig是一个接口,使用的对象是它实现类的一个实例

<servlet>
    <servlet-name>Hello</servlet-name>
    <servlet-class>oh.helloServlet</servlet-class>  <!-- 注册 -->
    <load-on-startup>1</load-on-startup>  <!-- 设置优先级-->
</servlet>

将上图servlet注册信息抽象成一个对象,放在init初始化函数内。

public void init(ServletConfig servletConfig) throws ServletException {
    System.out.println("初始化");
    System.out.println(servletConfig);
}

输出后:
在这里插入图片描述
2.接口方法:
在这里插入图片描述
使用方法:
在这里插入图片描述
对单个的servlet增加变量(init-param),此下的变量会被servletconfig的getinitparameter方法get到:在这里插入图片描述
运行截图如下:在这里插入图片描述

3.servletconfig的servletcontext(servlet的环境,对域属性操作,获取路径的整体操作)

1.servletcontext也是接口,方法有很多:
在这里插入图片描述

2.可以设置(serattribute)和读取(getattribute,getInitparameter)全局的初始化变量,且所有的servlet共享,但要与servletconfig的getInitparameter区分开(只对在servlet注册内配置了初始化变量的那一个servlet有用,这个是对域属性有用)

3.设置这个的域属性的定义与注册servlet同级别(因为是全局嘛在这里插入图片描述
4.储存全局变量的地方叫做(context-param),变量名叫属性,域属性

5.getcontextpath可获得应用的名称
6.getrealpath可获得全路径:
5,6点的图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值