Servlet相关知识点简单介绍

前言:刚好想起来了servlet,然后就去重新学习了一下。写这篇文章的目的就是为了简单记录servlet相关的知识点。内容包括快速入门体验、生命周期、体系结构、urlPattern和xml方式配置Servlet。

其实很多都已经不用了。

所谓Servlet,其实就是和JDBC一样,是一套官方制定的规范。所以,其本质其实就是接口。

1.Servlet快速案例

1、导入Servlet相关依赖

<!--加入servlet依赖(servlet的jar)-->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>4.0.1</version>
  <scope>provided</scope>
</dependency>
<!--jsp的依赖(jsp相关的jar加进来)-->
<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>javax.servlet.jsp-api</artifactId>
  <version>2.2.1</version>
  <scope>provided</scope>
</dependency>

自己去Maven仓库找一个也行,我也是随便找的。

2、添加@WebServlet注解,并实现servlet接口

import jakarta.servlet.*;
import jakarta.servlet.annotation.WebServlet;

import java.io.IOException;

/**
 * @version 1.0
 * @date 2023/4/25 20:41
 */
@WebServlet("/demo")
public class ServletDemo implements Servlet {


    @Override
    public void init(ServletConfig config) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		System.out.println("调用service方法");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

  • 核心方法就是service()。在运行时,会由Tomcat创建对应的Servlet对象,调用对应的service方法。
  • @WebServlet注解用来指定资源路径。

3、访问路径http://主机名:端口号/项目名/路径名,控制台查看结果。项目名在tomcat的配置文件可以自己修改。

2.Servlet生命周期

对象的生命周期指一个对象从被创建到被销毁的整个过程。

Servlet运行在servlet容器(web服务器)中,其生命周期由容器来管理,分为4个阶段

  • 加载和实例化: 默认情况下,当Servlet第一次被访问时,由Tomcat容器创建Servlet对象。因此可以设置 @WebServlet(value = “/demo”,loadOnStartup = 1)。loadOnStartup 为负数则默认第一次访问时创建。0或正数,服务器启动时创建。数字越小,优先级越高。

  • 初始化:在Servlet实例化之后,容器将调用Servlet的 init() 方法初始化这个对象,完成一些如加载配置文件、创建连接等初始化的工作。该方法只 调用一次

  • 请求处理: 每次请求servlet时,Servlet容器都会调用Servlet的 service() 方法对请求进行处理

  • 服务终止:当需要释放内存或者容器关闭时,容器就会调用Servlet实例的 destroy() 方法完成资源的释放。在destroy0方法调用之后,容器会释放这个servlet实例,该实例随后会被Java的垃圾收集器所回收

3.Servlet体系结构

在这里插入图片描述
HttpServlet里面有两个方法,doGet() 和 doPost() 分别用来处理Get请求和Post请求。

如果查看HttpServlet源代码可以知道,其实就是实现了Servlet接口,调用了service()方法。然后对请求的方式进行判断,分别进行逻辑处理。使用起来,更加方便。

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;

/**
 * @version 1.0
 * @date 2023/6/25 21:35
 */

@WebServlet("/HttpServletDemo")
public class HttpServletDemo extends HttpServlet {
    @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.......");
    }
}

当然,里面还有其他方法。
在这里插入图片描述
但是主要是这两个方法。

3、Servlet urlPattern匹配规则

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当有多个规则匹配时,优先更精确的

在这里插入图片描述
优先级:精确匹配 > 目录匹配 > 扩展名匹配 > /* > /

4.XML配置Servlet

3.0版本之前常用。3.0之后已经支持WebServlet()的方式。基本上已经不用了,下面写一个使用xml配置一个Servlet的例子。

	<!-- 配置Servlet信息 -->
  <servlet>
    <servlet-name>demo1</servlet-name>
    <servlet-class>ServletDemo</servlet-class>
  </servlet>

	<!-- 配置Servlet访问路径 -->
  <servlet-mapping>
    <servlet-name>demo1</servlet-name>
    <url-pattern>/demo1</url-pattern>
  </servlet-mapping>

这样一个名叫demo1的servlet就配好了,他的访问路径是/demo1,绑定的class文件是ServletDemo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值