1.为什么会有Servlet?它解决了什么问题?

1. 为什么会出现Servlet?
因为web服务器(tomcat、Weblogic、iis、apache)没有处理动态资源请求的能力(即该请求需要计算),只能处理静态资源的请求(如果浏览器请求某个html页面,web服务器查看请求的html页面是否存在,存在则返回。)如果要让web服务器处理动态资源的请求,则需要使用CGI[1]程序、组件加容器的方式。


2. Servlet解决了什么?
ServletServlet容器使得web服务器有了处理动态资源的能力Servlet就是web服务器处理动态资源的具体实现。


3. Servlet和Servlet容器如何让web服务器有处理动态资源的能力?

  1. 浏览器根据url访问服务器上的web服务器[2]程序
  2. web服务器程序获取到请求,转发给servlet容器
  3. servlet容器根据该请求,编译执行特定的servlet类文件
  4. servlet类文件根据请求执行不同的方法,动态生成结果
  5. servlet类文件将执行后的静态数据,返回给servlet容器
  6. servlet容器静态数据返回给web服务器web服务器静态数据返回给浏览器
  7. 浏览器展示静态数据

  1. CGI是Web服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI,包括流行的C、C ++、VB 和Delphi 等。
    ---来源:百度百科 ↩︎

  2. Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个Web服务器是Apache、 Nginx 、IIS。
    ---来源:百度百科 ↩︎

原文地址:https://www.cnblogs.com/strive-for-life/p/11187253.html