搞懂Servlet(1)- 介绍

在这里插入图片描述

介绍Servlet

今天,我们都意识到创建动态网页的必要性。动态网页就是网页内容会随着时间变化,或者内容会根据请求参数的不同而变化。如果你使用java编程,很幸运的是有一种使用Java生成动态网页的方式-Java Servlet。但是,在这之前,我们先来理解服务端需要的扩展。

什么是Java Servlet

Java Servlet是指在Java-enabled的web服务器或应用服务器上运行的Java程序。它们用于处理来web服务器接收的请求,处理请求,产生响应,把响应返回给web服务器。

Java Servlet的特性

Java Servlet的特性包括:

  • 工作在服务端
  • 可以处理来自web服务器的复杂的请求

Java Servlet的架构

Java Servlet的架构可以用下面的图描述:
在这里插入图片描述

Java Servlets的执行

Java Servlets的执行通常包括6个步骤:

  1. 客户端把请求发送到web服务器。
  2. web服务器收到请求。
  3. web服务器把请求发送给对应的servlet。
  4. servlet处理请求,产生输出格式的响应。
  5. servlet把响应返回给web服务器。
  6. web服务器把响应返回给客户端,客户端把响应显示在网页中。

现在,让我们讨论下为什么需要服务端的扩展。

服务端的扩展

服务端的扩展只是用于生成动态网页的技术。实际上,为了给动态网页提供一个生产车间,动态网页需要一个容器或者web服务器。为了实现这种需求,各个web服务器提供商提出了API形式的解决方案。
这些API可以让我们写出可以和服务器一起工作的程序。同样,Java Servlet 也是Java Platform Enterprise Edition(制定使用Java创建动态网页技术的标准)的API组件之一。
Java Servlet并不是实现动态网页唯一的技术。Java Servlet类似于其它的web服务器扩展,例如Common Gateway Interface(CGI)和Hypertext Preprocessor(PHP)。可是,Java Servlet更受欢迎,因为它解决了CGI的一些限制,例如,低性能和低扩展性。

什么是CGI(Common Gateway Interface)

CGI实际上是一个外部的用任何语言比如C、C++编写的程序,负责处理客户端的请求,生成动态内容。
在CGI程序中,当客户端请求动态网页时,web服务器执行下面的操作:

  1. 它首先找到处理这个动态网页请求的CGI应用程序。
  2. 然后,新建一个进程用户处理这个请求。
  3. 在这个新进程中运行CGI程序,并传入请求的信息。
  4. 从CGI进程中获取响应数据。
  5. 销毁进程,准备HTTP响应,返回给客户端。
    在这里插入图片描述
    所以,使用CGI,服务器必须为每一个请求创建和销毁进程。很容易理解这种方式在处理小量用户请求时是没有问题的,但是,随着用户量的增加,服务器的工作负载会增加,相应的,处理请求的时间也会增加。

Java Servlet和CGI的区别

ServletCGI(Common Gateway Interface)
Servlets可移植,高效CGI不可移植
Servlets可以共享数据CGI不可共享数据
Servlets可以直接跟web服务器通信CGI不可以直接跟web服务器通信
Servlets轻量级CGI重量级
Servlets可以操作cookiesCGI不可以操作cookies

Servlets APIs

Servlets由2个包组成:

  • javax.servlet(基础)
  • javax.servlet.http(高级)
    包里包括的类:
组件类型
ServletInterfacejavax.servlet.*
ServletRequestInterfacejavax.servlet.*
ServletReponseInterfacejavax.servlet.*
GenericServletclassjavax.servlet.*
HttpServletclassjavax.servlet.http*
HttpServletRequestinterfacejavax.servlet.http*
HttpServletResponseinterfacejavax.servlet.http*
FilterInterfacejavax.servlet.*
ServletConfigInterfacejavax.servlet.*

Java Servlet 的有点

  • 由于Servlets不像CGI,为每一个请求开启一个进程,它运行的更快。
  • Servlets由Java编写,它是平台无关的。
  • Servlets是服务端的组件,它可以继承web服务器提供的安全保证。
  • Servlets由Java编写,它可以使用Java平台提供的基础设施,比如,JDBC访问数据库。

Servlet 容器

Servlet容器,也被称为Servlet引擎,是一套为Servlet搭建的运行时环境。简单来说,它是构建在Web服务器之上,管理着Servlet,处理Web客户端请求的系统。
Servlet容器提供的服务包括:

  • 网络服务:加载Servlet类。加载源可以是本地文件系统,远程文件系统,或者其它网络服务。容器提供网络服务包括请求和响应的发送。
  • 解码和编码MIME-based信息:提供编解码MIME-based信息。
  • 管理Servlet:管理Servlet的生命周期。
  • 资源管理:管理动态和静态资源,例如:HTML,Servlet,JSP页面。
  • 安全服务:提供资源访问的鉴权。
  • Session管理:维护Session。

总结

Java Servlet是处理业务逻辑和处理复杂网络请求的关键组件,帮助开发动态网站。下面是我们这篇文章讨论过的要点:

  • Java Servlets 致力于服务端程序的开发,处理动态内容,创建健壮和交互性的网站。
  • Servlets 使我们的web程序更加响应快速。因为,它不需要为每一个请求创建和销毁进程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值