Java网络编程基本功之Servlet与Servlet容器

本文介绍了Servlet与Servlet容器的关系,Servlet是Java编写的服务器端程序,用于动态扩展服务器能力,采用请求-响应模式提供服务。Servlet容器如Tomcat负责管理Servlet,处理客户端请求。Servlet生命周期包括实例化、初始化、执行处理和销毁。在执行处理阶段,Servlet通过service()方法响应请求,根据HTTP方法调用doGet()或doPost()等方法。
摘要由CSDN通过智能技术生成

Servlet与Servlet容器关系

Servlet

比较这两个的区别, 就得先搞清楚Servlet 的含义, Servlet (/ˈsərvlit/ ) 翻译成中文就是小型应用程序或者小服务程序, 与之相类似的是Server (/ˈsɜːrvər/), 翻译过来是服务器的意思, 可见这二者承担类似的功能,但是Servlet更轻量。

web开发的本质就一句话:客户端和服务器交换数据。于是使用 Java 的 Socket 套接字进行编程,去处理客户端来的 tcp 请求,经过编解码处理读取请求体,获取请求行,然后找到请求行对应的处理逻辑步入服务器的处理中,处理完毕把对应的结果返回给当前的 Socket 链接,响应完毕,关闭 Socket。

上述过程中, 建立连接、传输数据、关闭连接等过程是tomcat容器帮你做了这些事情, 而拿到请求行之后去找对应的 url 路由,这一部分是谁做的呢?是Servlet ! 简单来说Servlet就是一段处理 web 请求的逻辑。

具体来说Servlet具有以下几个特点:

  1. Servlet是用Java编写的Server端程序,它与协议和平台无关。
  2. Servlet运行于Java-enabled Web Server中。
  3. Java Servlet可以动态地扩展Server的能力,并采用请求-响应模式提供Web服务。
  4. 最早支持Servlet技术的是JavaSoft的Java Web Server。
  5. 此后,一些其它的基于Java的Web Server开始支持标准的Servlet API。
  6. Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。

上面六点中,最需要被记住的是Servlet可以动态地扩展Server的能力,并采用请求-响应模式提供Web服务。

JDK中的Servlet是一个接口:

public interface Servlet { 
    public void init(ServletConfig config) throws ServletException;
    public ServletConfig getServletConfig();
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException;
    public String getServletInfo();
    public void destroy();
}

可以看到Servlet 是一个接口, 规定了请求从容器到达 web 服务端的规范,详细内容在后面的Servlet生命周期中详细梳理,这儿简单概括三个重要步骤是:

  1. init(): 初始化请求的时候要做什么。
  2. service(): 拿到请求的时候要做什么。
  3. destory(): 处理完请求销毁的时候要做什么。

所有实现 Servlet 的实现方都是在这个规范的基础上进

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值