Web应用开发

Servlet技术

Servlet技术的由来

  1. HTML技术出现后,可以通过HTML网页对数据进行可视化展示。但是由于HTML网页是静态网页,因此HTML技术是没办法实现数据和数据可视化展示的动态变化,因此动态网页技术就产生了。
  2. 动态网页技术的核心思路是对网页中动态改变的源码内容用高级语言进行处理。
  3. 根据动态网页中采用的高级语言,可以将动态网页技术分为前端动态网页技术、后端动态网页技术。前端动态网页技术一般采用能被浏览器直接解释运行的前端脚本语言,而后端动态网页技术采用后端高级语言,是不能被浏览器解释运行的。
  4. 前端、后端动态页面技术互为优缺点,前端动态页面技术的优点是减轻了Web服务器处理数据的负担,因为数据在客户端处理,缺点是不安全,容易被篡改。后端动态页面技术的优点安全,缺点是服务器数据处理负担较重。
  5. Servlet技术就是一种后端动态网页技术,它由Sun公司开发,并采用Java语言处理网页中的动态数据。

Servlet技术的跨平台实现

  1. Sun公司采取了和JDBC API实现一样的策略(即委托策略)来实现Servlet API跨Web服务器平台。
  2. 具体来说就是,Servlet API中存在大量的接口和抽象类,这些接口和抽象类中存在大量的与处理请求相关的抽象方法,这些抽象方法Sun公司没办法给出实现代码,Sun公司要求支持Servlet技术的Web服务器厂家在Web服务器中给出实现代码。
  3. 通常我们将实现了Servlet API中所有抽象方法的Web服务器称为Servlet容器
  4. Servlet容器是Web服务器,但Web服务器不一定是Servelt容器,只有支持Servlet技术(即实现了Servlet API中所有抽象方法)的Web服务器才被称为Servlet容器。
  5. 最常用的Servelt容器是Apache Tomcat

Servlet处理请求的过程

Servlet处理请求的过程

  1. 编写Servelt程序AddUserServlet,并发布到Web服务器中。
  2. 用户用浏览器访问AddUserServlet
  3. Web服务器接收到请求后,首先会将当前请求信息封装到一个请求对象中,并创建一个没有任何数据的响应对象;然后将此请求和响应对象交给AddUserServlet处理。
  4. AddUserServlet接收到请求后开始处理请求。在处理请求的过程中如果数据在数据库中,那么AddUserServlet就要用JDBC代码操作数据库中的数据。
  5. AddUserServlet处理完请求后,会将请求处理的最终结果数据嵌入到一段前端代码块(做数据的可视化展示)中,并以响应的形式发还给发出请求的客户端浏览器。
  6. 客户端浏览器接收到服务器发回的响应后,首先从响应中取出请求处理结果,即内嵌了结果数据的一段前端代码;然后浏览器一行一行地将前端代码解释运行为一个个Web图形控件,这些Web图形控件又组合成一个Web图形界面来对结果数据进行可视化展示。

Servlet的含义

  1. 从功能层面理解:

    Servlet程序就是一个运行在Servlet容器中特殊Java类,此Java类必须能完成以下功能

    ① 能从Servlet容器接收Web请求。

    ② 能对接受到的请求进行处理。

    ③ 能将请求处理的最终结果嵌入到一段前端代码中,以响应的形式发还给发出请求的客户端浏览器。

  2. 从编码层面理解:

    Servlet程序就是一个运行在Servlet容器中的特殊Java类,此Java类继承自javax.servlet.http.HttpServlet。由于HttpServlet具有处理Web请求的能力,因此HttpServlet的子类也具有处理Web请求的能力。