什么是Servlet?

Servlet

Servelt定义:

servlet是一种应用于服务器端的Java程序,可以生成动态的web页面。

servlet运行在服务器端,是由web服务器负责加载的,是独立于平台和协议的

Java应用程序。

 

3.1 Servlet**的意义和生命周期**

Servlet其实并不是很复杂的东西,事实上,servlet就是一个java接口,定义了处理网络请求的规范。所有实现servlet的类,都需要实现它那五个方法,其中最主要的是三个生命周期方法 init()和destroy()service(),所有实现

 

servlet接口的类都需要回答这三个问题:

你初始化时要做什么

你销毁时要做什么

你接受到请求时要做什么

package javax.servlet;
import java.io.IOException;
public interface Servlet {
   void init(ServletConfig var1) throws ServletException;
  ServletConfig getServletConfig();
   void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
   String getServletInfo();
   void destroy();
}

Servlet接口源码如下:

一共有三个生命周期方法,init(),service(),destroy()

init()方法:在servlet被创建时调用

service()方法:servlet接收到前端发送过来的HTTP请求时调用

destory()方法:servlet销毁时被调用

 

3.2 Servlet**生命周期详解**

当我们第一次接触Servlet和WEB服务器时,我们一定会有这个疑问:为什

么我们都不用使用new关键字来实例化Servlet就能够使用了呢?

这是因为,在我们第一次访问到servlet的时候,servlet容器会根据

web.xml文件里注册的servlet信息,为我们创建一个servlet实例,调用

servlet的init方法,这个实例会常驻内存,当我们每次访问servlet配置的

mapping地址时,就会调用该实例的service方法来处理请求,当web服务

器关闭时,会调用servlet的destroy方法来销毁servlet实例。

 

 

}3.3 创建**Servlet的三种方法:**

\1. 实现servlet接口,重写接口中的init(),service(),destroy()等方法

\2. 继承GenericServlet,重写父类中的service()方法

\3. 继承HttpServlet,重写父类中的doGet()和doPost()方法

GenericServlet是一个抽象类,实现了servlet接口

HttpServlet是一个普通类,继承自GenericServlet

为什么会有三种方式?

因为Servlet技术是不断发展的,先有Servlet,再有GenericServlet,最后

才有的HttpServlet。HttpServlet封装了更多的内容,实现了更强大的功

能,所以在接下来的学习中我们都使用HttpServlet来实现。

3.4 Servlet**技术总结**

其实Servlet本身在Web容器中是“非常被动”的一个角色,处理的事情也很

简单。网络请求与响应,不是他的主要职责,它其实更偏向于业务代码。

所谓的Request和Response是Web容器来进行处理,servlet并不会参与处

理Request和Response的过程。*

 

 



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。


如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载!
posted @   无名小萃  阅读(942)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示