servlet的作用、生命周期与案例

servlet是什么?有什么用?

通俗的说 servlet 的本质是一个java程序 ,Servlet 同时也是连接 Web 服务器与服务端 Java 程序的协议,是一种通信规范。这个规范是以一套接口的形式体现的。
作用:当浏览器通过http调用web服务器(如 romcat)时,web服务器通过servlet来调用我们在后台写的java程序,且web服务器只能调用实现了servlet接口的类,所以web服务器想调用后台程序时就需要通多servlet来调用
在这里插入图片描述
在这里插入图片描述
该方法中定义了servlet在get、post、delete等方法中需要选择调用哪个一个方法
源码如下
在这里插入图片描述

servlet特点

(1)Servlet 是单例多线程的。
(2)一个 Servlet 实例只会执行一次无参构造器与 init()方法,并且是在第一次访问时执行。
(3)用户每提交一次对当前 Servlet 的请求,就会执行一次 service()方法。
(4)一个 Servlet 实例只会执行一次 destroy()方法,在应用停止时执行。
(5)由于 Servlet 是单例多线程的,所以为了保证其线程安全性,一般情况下是不为 Servlet
类定义可修改的成员变量的。因为每个线程均可修改这个成员变量,会出现线程安全问题。
(6)默认情况下,Servlet 在 Web 容器启动时是不会被实例化的。

servlet的开发步骤

  1. 编写一个类 需要实现servlet接口,或集成servlet的实力列
  2. 把定义好的 servlet实例类 ,通过web.xml 文件告诉tomcat 让其在需要的时候调用该类
  3. 在web.xml文件中定义servlet的名字,并定义url地址(地址必须以斜杠开头)
  4. 启动tomcat 访问

servlet生命周期

所谓 Servlet 生命周期是指,Servlet 对象的创建、Servlet 对象的初始化、Servlet 对象服
务的执行,及最终 Servlet 对象被销毁的整个过程。
Servlet 的整个生命周期过程的执行,均由 Web 服务器负责管理。即 Servlet 从创建到服
务到销毁的整个过程中方法的调用,都是由 Web 服务器负责调用执行,程序员无法控制其
执行流程。但程序员可以获取到 Servlet 的这些生命周期时间点,并可以指定让 Servlet 做一些具体
业务相关的事情
在这里插入图片描述
在这里插入图片描述
(1)当请求发送到 Web 容器后,Web 容器会解析请求 URL,并从中分离出 Servlet 对应的
URI。
(2)根据分离出的 URI,通过 web.xml 中配置的 URI 与 Servlet 的映射关系,找到要执行的
Servlet,即找到用于处理该请求的 Servlet。
(3)若该 Servlet 不存在,则调用该 Servlet 的无参构造器、init()方法,实例化该 Servlet。
然后执行 service()方法。
(4)若该 Servlet 已经被创建,则直接调用 service()方法。
(5)当 Web 容器被关闭,或该应用被关闭,则调用执行 destroy()方法,销毁 Servlet 实例。

servlet 案例

新建demo

在这里插入图片描述

编写测试类

HttpServlet 类是已给已经实现了 Servlet接口的类,我们直接继承这个类即可,不是直接实现servlet接口然后重写很多方法

public class MyServlet extends HttpServlet {
    public MyServlet() {
        System.out.println("MyServlet对象被创建");
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("这是 doGet 方法");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("这是 doPost 方法");
    }
}

编写好测试类后,我们要在web.xml文件中告诉tomcat 我们定义的servlet实现类,这样tomcat才能调用我们的servlet
注意:给servlet起名字为“test”,并定义一个url为“myservlet”

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!-- 把servlet类路径交给 tomcat 服务器  告诉tomcat 这个是我们定义的一个servlet类-->
    <servlet>
        <!--下面这个变量是用来存储servlet接口实现类的类路径 简而言之就是servlet的名字-->
        <servlet-name>test</servlet-name>
        <!--类路径-->
        <servlet-class>com.li.MyServlet</servlet-class>
        <!--下面这个标签可有可无 当数字为0或者负数时 表示当需要调用该对象时才被创建
        当大于0时表示tomcat启动时就创建改对象 ,数字越小 实例化优先级越高(数字0除外)
        不写的话,默认数字为0.
        -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!--为了降低用户访问servlet接口实现类的难度,需要设置简短请求别名-->
    <servlet-mapping>
        <servlet-name>test</servlet-name><!--这个 mm 就是上个<servlet>标签里的 <servlet-name>标签里的值-->
        <url-pattern>/myservlet</url-pattern> <!--这里写请求别名url,必须以 /  为开头-->
    </servlet-mapping>
</web-app>

配置tomcat启动参数

在这里插入图片描述
定义web容易的名称
在这里插入图片描述
定义端口号
在这里插入图片描述

启动tomcat服务器

在这里插入图片描述

访问

访问地址= ip:端口号 / 容器名称 / xml文件中定义的url
post方法 请用postman测试
在这里插入图片描述
访问成功在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值