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

举报
愚公搬代码 发表于 2023/04/30 23:39:21 2023/04/30
【摘要】 前言Servlet的来源可以追溯到Java语言的早期版本,它是一种Java程序,用于在Web服务器上处理客户端请求和响应。Servlet最初是由Sun Microsystems开发的,现在已经成为Java EE规范的一部分。它可以与JSP一起使用,用于构建动态Web应用程序。Servlet 是 Java 语言编写的服务端程序,可以运行在 Web 服务器或应用服务器中。Servlet 可以接收...

前言

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方法中一个里面提供具体功能即可,而另外的那个方法只需要调用提供了功能的方法。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。