Servlet 快速入门


1、Servlet 简介

什么是ServletServlet实际上是Server apple的缩写,官方给出的定义是运行在服务器端的小程序。

那么为什么要有Servlet呢?请看下图:

在这里插入图片描述
浏览器向服务器请求动态资源,动态资源中一定要有一个Java类响应他,而这个类没有main方法无法自主执行。也就是说这个类依赖于Tomcat执行,所以这个类就要有一定的规范才能被Tomcat识别,而这个规范就是Servlet

综上所述,Servlet是一个规范,也就是说是一个接口,这个接口定义了这个Java类被Tomcat识别的规则,实现Servlet只需要实现接口复写方法即可


2、Servlet 实现步骤

1)创建 Java EE 项目

IDEA中创建Java EE项目,创建完成之后,如下图所示:
在这里插入图片描述

2)定义一个类实现 Servlet 接口

上面的图片已经创建过类了,下面只需要在这个类中间实现Servlet接口就好了

package wzq.web.servlet;

import javax.servlet.Servlet;

public class ServletDemo1 implements Servlet {
    
    
    
}

3)实现接口中的抽象方法

IDEA中可以可以直接按快捷键Ctrl + O选择可重写的方法,我们直接选中如下图所示的五个方法:

在这里插入图片描述
复写后是这样的:

package wzq.web.servlet;

import javax.servlet.*;
import java.io.IOException;

public class ServletDemo1 implements Servlet {
    
    

    /*
    * 初始化方法
    * 在Servlet被创建时执行,只执行一次
    * */
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
    
    

    }

    /*
    * 获取ServletConfig对象
    * */
    @Override
    public ServletConfig getServletConfig() {
    
    
        return null;
    }
    
    /*
    * 提供服务
    * 每一次Servlet被访问时,都会执行,执行N次
    * */
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
    
    

    }
    
    /*
    * 获取Servlet版本、作者等信息
    * */
    @Override
    public String getServletInfo() {
    
    
        return null;
    }
    /*
    * 销毁
    * 在Servlet对象被杀死时执行,只执行一次
    * */
    @Override
    public void destroy() {
    
    

    }
}

4)配置 Servlet

配置Servlet共有两种方式,分别是在web.xml中配置和使用@WebServlet注解配置。

a. 在 web.xml 中配置

打开web.xml,在<webapp></web-app>标签中,写下面格式的xml代码:

<servlet>
	<servlet-name>名字</servlet-name>
    <servlet-class>Servlet所在类的全类名</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>与上面的名字相一致,才能映射到类</servlet-name>
    <url-pattern>虚拟目录</url-pattern>
</servlet-mapping>

我是这样写的:

<servlet>
	<servlet-name>demo1</servlet-name>
    <servlet-class>wzq.web.servlet.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>demo1</servlet-name>
    <url-pattern>/虚拟目录</url-pattern>
</servlet-mapping>

下面是另一种比较简便的配置方式。

b. 使用注解配置

需要注意的是:使用注解配置必须保证在Servlet 3.0版本以上。

使用注解配置不需要再web.xml中写那么长的代码,只需要在类名上面加上如下面格式的注解:

@WebServlet(urlPatterns = "/虚拟目录")

我是这样写的:

@WebServlet(urlPatterns = "/demo2")

前面的urlPatterns这一部分可以省略,可以这样写:

@WebServlet("/demo2")

使用Servlet注解配置可以指定多个路径是这样写的:

@WebServlet({
    
    "/demo2","/demo22","/demo222"})

这个后面可以写N个

还有三种路径定义的规则:

  • /xxx
  • /xxxx/xxxx:多级路径、目录
  • *.do:代表着以.do为后缀的文件都可以访问该小程序

3、Servlet 执行原理

Servlet执行原理请看下图:
在这里插入图片描述
以下是对上图的每个步骤进行解释:

  • :浏览器发送请求,web.xmlurl-pattern响应
  • :获取servlet-name标签内容
  • :映射到servlet标签,匹配servlet中的name属性
  • :找到对应的全类名
  • :找到对应的类,执行Servlet小程序

猜你喜欢

转载自blog.csdn.net/lesileqin/article/details/111992194
今日推荐