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

本文探讨了Servlet与Servlet容器的关系,Servlet作为Java编写的服务器端程序,负责处理Web请求,而Servlet容器如Tomcat则负责管理Servlet的生命周期,包括实例化、初始化、执行处理和销毁。Servlet接口定义了生命周期方法,实现类通常继承HttpServlet以处理HTTP请求。文章还介绍了Servlet的工作原理,包括请求处理流程和Servlet的线程安全性问题。
摘要由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():处理完请求销毁的时候要做什么。

所有实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值