Servlet
为什么需要使用Servlet
由于早期的互联网全是静态的网页展示,此时的web服务器就只需要根据用户的请求将对应的页面返回给浏览器即可。像我们熟知的Apache、Nginx就是这类专门处理浏览器静态请求的web服务器。
随着互联网的发展,网站不再是简单的展示信息。出现了需要用户登录、实时展示股票信息等等具有交互属性的功能。这些新出现的业务场景,是简单的静态网页无法实现的。那么这时候就需要根据用户的交互去实时生成网页内容展示给客户,这也就是动态网页技术出现的原因,也是我们为什么需要使用servlet的原因。
番外:早期出现的动态网页技术并不是servlet,有诸如CGI技术,即Common Gateway Interface(公用网关接口);PHP;ASP等。但是现在通用的还是servlet。需要注意以下JSP实际上时基于servlet技术来实现的动态网页技术。目web技术基本上采取前后台分离的开发方式,所以类似jsp这种技术在项目中已并不常用。
Servlet是什么
从动态网页技术出现的原因,我们也可以知道Servet最起码是可以用于生成动态网页内容的。我们来看一下官方文档给出的定义 。
A servlet is a Java™ technology-based Web component, managed by a container, that generates dynamic content.(摘自官方文档)
Servlet是基于Java技术的web组件,托管于Servlet容器,用于生成动态内容。这句定义中的基于Java技术就不在赘述了。应为web服务是以一整套体系servlet只是其中之一,因此只能算是一个web组件。至于官方文档说的是生成动态内容,而不是网页动态内容。这也是好理解的,servlet生成的动态内容也是可以用于其他的形式,只不过是用于web开发中最常见而已我们课程介绍的也是这个场景的使用。
Servlet容器是什么
定义中提到了servlet容器又是什么呢?所谓容器我们把它理解成一个管理者更合适。之前我们提到过Apache、Nginx这种之管理静态资源的web服务器。那么我们提供各种动态服务的servlet肯定也需要用东西来管理吧,那么这个东西就叫servlet容器。例如,web开发中经常用到的tomcat、weblogic、jetty、jboss都是servlet容器。当然由于这些容器很多同时也具有管理静态资源,和提供其他web服务功能,我们也称它们叫做应用服务器。
我们拿tomcat举例,来看看web服务和servlet、静态资源、客户端(浏览器)的关系图。
小结
- 本节主要讲述了,由于需要生成动态的网站内容,导致了Servlet技术的出现。以及servlet、servlet容器的作用和相互关系。