【愚公系列】2023年06月 Java教学课程 085-Servlet服务器的基本使用

109 阅读4分钟

前言

Servlet的来源可以追溯到Java语言的早期版本,它是一种Java程序,用于在Web服务器上处理客户端请求和响应。Servlet最初是由Sun Microsystems开发的,现在已经成为Java EE规范的一部分。它可以与JSP一起使用,用于构建动态Web应用程序。

Servlet 是 Java 语言编写的服务端程序,可以运行在 Web 服务器或应用服务器中。Servlet 可以接收来自 Web 浏览器的请求并作出响应,比如生成 HTML 页面。 Servlet 一般用于构建动态网站,它可以访问数据库或其他后台服务来为浏览器提供动态内容。

目前在Oracle官网中的最新版本是JavaEE8,该网址中介绍了JavaEE8的一些新特性。

可以通过访问官方API,学习和查阅里面的内容。

打开官方API网址,在左上部分找到javax.servlet包,在左下部分找到Servlet,如下图显示: 在这里插入图片描述 通过阅读API,我们得到如下信息:

  1. Servlet是一个运行在web服务端的java小程序
  2. 它可以用于接收和响应客户端的请求
  3. 要想实现Servlet功能,可以实现Servlet接口,继承GenericServlet或者HttpServlet
  4. 每次请求都会执行service方法
  5. Servlet还支持配置

在这里插入图片描述

一、Servlet的基本使用

1.Servlet

1.1 Servlet编码步骤

1.1.1 编码步骤

  1. 前期准备-创建JavaWeb工程
  2. 编写一个普通类继承GenericServlet并重写service方法
  3. 在web.xml配置Servlet

1.1.2 测试

在Tomcat中部署项目

在这里插入图片描述

在浏览器访问Servlet

在这里插入图片描述

1.2.2 Servlet执行过程分析

我们通过浏览器发送请求,请求首先到达Tomcat服务器,由服务器解析请求URL,然后在部署的应用列表中找到我们的应用。接下来,在我们的应用中找应用里的web.xml配置文件,在web.xml中找到FirstServlet的配置,找到后执行service方法,最后由FirstServlet响应客户浏览器。整个过程如下图所示:

一句话总结执行过程:

浏览器——>Tomcat服务器——>我们的应用——>应用中的web.xml——>FirstServlet——>响应浏览器

在这里插入图片描述

1.2.3 Servlet类视图

在《Tomcat和Http协议》这天课程和刚才的入门案例中,我们都定义了自己的Servlet,实现的方式都是选择继承GenericServlet,在Servlet的API介绍中,它提出了我们除了继承GenericServlet外还可以继承HttpServlet,通过查阅servlet的类视图,我们看到GenericServlet还有一个子类HttpServlet。同时,在service方法中还有参数ServletRequest和ServletResponse,它们的关系如下图所示:

在这里插入图片描述

1.2.4 Servlet编写方式

1)编写方式说明

我们在实现Servlet功能时,可以选择以下三种方式:

第一种:实现Servlet接口,接口中的方法必须全部实现。

​ 使用此种方式,表示接口中的所有方法在需求方面都有重写的必要。此种方式支持最大程度的自定义。

第二种:继承GenericServlet,service方法必须重写,其他方可根据需求,选择性重写。

​ 使用此种方式,表示只在接收和响应客户端请求这方面有重写的需求,而其他方法可根据实际需求选择性重写,使我们的开发Servlet变得简单。但是,此种方式是和HTTP协议无关的。

第三种:继承HttpServlet,它是javax.servlet.http包下的一个抽象类,是GenericServlet的子类。如果我们选择继承HttpServlet时,只需要重写doGet和doPost方法,不要覆盖service方法。

​ 使用此种方式,表示我们的请求和响应需要和HTTP协议相关。也就是说,我们是通过HTTP协议来访问的。那么每次请求和响应都符合HTTP协议的规范。请求的方式就是HTTP协议所支持的方式(目前我们只知道GET和POST,而实际HTTP协议支持7种请求方式,GET POST PUT DELETE TRACE OPTIONS HEAD )。

2)HttpServlet的使用细节

第一步:在入门案例的工程中创建一个Servlet继承HttpServlet 在这里插入图片描述

第二步:部署项目并测试访问

当我们在地址栏输入ServletDemo2的访问URL时,出现了访问错误,状态码是405。提示信息是:方法不允许。

第三步:分析原因

得出HttpServlet的使用结论:

我们继承了HttpServlet,需要重写里面的doGet和doPost方法来接收get方式和post方式的请求。

为了实现代码的可重用性,我们只需要在doGet或者doPost方法中一个里面提供具体功能即可,而另外的那个方法只需要调用提供了功能的方法。