1.3_对于Servlet规范的一点理解

以往理解Servlet只是一个特定规范的Java类,JSP页面在Servlet容器中运行时也会被编译成Servlet执行。

但Servlet规范中定义的内容更广泛,涉及Servlet本身、Servlet容器、Web Application等多项内容。

 

Servlet是基于Java的一种Web组件,用来动态生成内容。

Servlet容器用来部署Web应用,提供对于Servlet的管理及外部服务调用。

Web应用是由Servlets、HTML pages、classes和其它资源组成的一个完整的应用程序。

Servlet容器可以作为Web服务器或者应用服务器的一部分来使用(通过插件的方式),但常见的使用场景是使用Apache或Nginx作为Web服务器,通过反向代理的模式将对Servlet的访问跳转到后台的Tomcat这个Servlet容器执行。

 

Servlet规范定义,对于Servlet容器和Web应用来说至关重要。

Servlet容器需要根据规范定义,对于外部的TCP/IP的链接进行管理,对HTTP&HTTPS的报文进行解析并生成ServletRequest,根据容器内部各个应用的配置信息进行服务映射,找到对应的Servlet进行处理,并将ServletResponse再以报文的形式返回出去。

部署在Servlet容器的Web应用,也是需要根据规范定义,获取请求信息并进行业务逻辑处理并返回结果。

 

我个人认为,了解Servlet规范便了解了HTTP报文、Servlet容器、Web应用程序各自的边界在哪里,通过什么方式以什么规范来进行对接。

参考:Java Servlet Specification Version 3.1

原文地址:https://www.cnblogs.com/jiaoqq/p/7066080.html