Servlet概述1

本文介绍了Servlet的基本概念,包括Servlet的定义、与CGI的区别、主要任务,以及Servlet的生命周期和工作流程。详细阐述了如何编写和配置Servlet,并强调了在处理HTTP请求时doGet和doPost方法的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Servlet概述

1.Servlet的简单介绍

Servlet是指Java Servlet是运行在web服务器上的程序,使用servlet可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,动态创建网页。

2.Servlet比之相近程序CGI的优点

在一般情况下,CGI与Java Servlet实现的程序效果差不多,但Servlet比CGI有几点优点:

1.在性能上,Java Servlet要比CGI性能更好。

2.Servlet 不需要再创建一个单独的进程来处理每个客户端请求,而CGI不行,因为Servlet是在 Web 服务器的地址空间内执行。

3.Servlet 是独立于平台的,因为它们是用 Java 编写的。

4.服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源,所以Servlet是足够安全的。

5.Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。

3.Servlet主要执行的任务

1.读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。

2.读取客户端发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。

3.处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。

4.发送显式的数据(即文档)到客户端。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。

5.发送隐式的 HTTP 响应到客户端。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。

4.编写一个Servlet

1.创建servlet类extends (javax.servlet.http.HttpServlet)重写方法

2.在xml文件中编写

在这里插入图片描述

这样一个Servlet就编写好了,当然如果使用IDEA也可以直接创建新的Servlet文件。

5.Servlet的工作流程

  1. 当servlet第一次启动的时候,调用init将servlet加载到内存中。
  2. 去调用servlet的service方法。
  3. 当二次及以后就不在执行init方法。
  4. webreload或Tomcat关闭的时候,调用destroy销毁servlet,释放资源。
  5. 当重写了doGet或doPost的时候,一定要在重写的service方法中调用父类的service方法,或者自己调用。

6.Servlet的方法

1.void init(ServletConfig config):容器在创建好 Servlet 对象后,就会调用此方法。该方法接收一个 ServletConfig 类型的参数,Servlet 容器通过该参数向 Servlet 传递初始化配置信息。

2.ServletConfig getServletConfig(): 用于获取 Servlet 对象的配置信息,返回 Servlet 的 ServletConfig 对象。

3.String getServletInfo():返回一个字符串,其中包含关于 Servlet 的信息,如作者、版本和版权等信息。

4.void service (ServletRequest request,ServletResponse response):负责响应用户的请求,当容器接收到客户端访问 Servlet 对象的请求时,就会调用此方法。 容器会构造一个表示客户端请求信息的 ServletRequest 对象和一个用于响应客户端的 ServletResponse 对象作为参数传递给 service() 方法。 在 service() 方法中,可以通过 ServletRequest 对象得到客户端的相关信息和请求信息,在对请求进行处理后,调用 ServletResponse 对象的方法设置响应信息。

5.void destroy(): 负责释放 Servlet 对象占用的资源。当服务器关闭或者 Servlet 对象被移除时,Servlet 对象会被销毁,容器会调用此方法。

在这 Servlet 接口中的五个方法,其中 init()、service() 和 destroy() 方法可以表现 Servlet 的生命周期,它们会在某个特定的时刻被调用。

针对 Servlet 的接口,Sun 公司提供了两个默认的接口实现类:GenericServlet 和 HttpServlet。其中,GenericServlet 是一个抽象类,该类为 Servlet 接口提供了部分实现,它并没有实现 HTTP 请求处理。

HttpServlet 是 GenericServlet 的子类,它继承了 GenericServlet 的所有方法,并且为 HTTP 请求中的 GET 和 POST 等类型提供了具体的操作方法。通常情况下,编写的 Servlet 类都继承自 HttpServlet,在开发中使用的也是 HttpServlet 对象。

HttpServlet中有两个常用方法:doGet和doPost

HttpServlet中有两大功能:

  1. 根据用户请求方式的不同,定义相应的 doXxx() 方法处理用户请求。例如,与 GET 请求方式对应的 doGet() 方法,与 POST 方式对应的 doPost() 方法。
  2. 通过 service() 方法将 HTTP 请求和响应分别强转为 HttpServletRequest 和 HttpServletResponse 类型的对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值