Servlet 简介
Servlet 技术用于创建web应用程序(应用在服务器端生成动态网页)。
Servlet 技术由于使用 Java 语言编写而具有强大的可扩展性。在 Servlet 技术之前,CGI (通用网关接口)脚本语言作为服务器端编程语言很流行。但是这个技术有很多缺点,我们稍后在下边讨论这些缺点。
在 Servlet API 中有很多接口和类,比如:GenericServlet、HttpServlet、ServletRequest 和ServletResponse 等。
什么是 Servlet ?
根据不同的场景,我们可以有很多种描述:
1). Servlet 是一种技术,即用于创建 web 应用程序
2). Servlet 是一个提供了很多接口和类(包括文档)的 API
3). Servlet 是一个创建任意 Servlet 时必须实现的接口
4). Servlet 是一个扩展服务器功能并响应传入请求的类,它可以响应任何类型的请求
5). Servlet 是一个在服务器上部署的 web 组件,用于创建动态网页
什么是 web 应用?
web 应用是一种可以从 web 端访问的应用程序。一个 web 应用由很多 web 组件构成,比如:Servlet、JSP、Filter 等,另外还有一些 web 组件像 html,这些组件通常都是在 web 服务器中执行并响应 HTTP 请求。
GUI (公共网关接口)
GUI 技术能够使 web 服务器可以调用外部程序,并将 HTTP 请求信息交给外部程序处理请求。对于每一个请求,它会启动一个新的进程。
GUI 的缺点:
1. 如果客户增加,则发送响应需要更长的时间
2. 对于每一个请求,它会开启一个进程,并且 web 服务器仅限于启动进程
3. 它使用的是平台相关的语言,比如:C、C++和 Perl
Servlet 比 CGI 有许多优点。 web 容器创建线程来处理对 Servlet 的多个请求。线程比进程有很多好处,比如它们共享一个共同的内存区域,线程之间的通信成本很低,轻量级。 servlet的基本好处如下:
1. 性能更好:因为它为每个请求创建一个线程而不是进程
2. 可移植性:因为它使用 Java 语言
3. 强大:Servlet 由 JVM管理,所以我们不需要担心内存泄漏,垃圾收集等
4. 安全:因为它使用 Java 语言