五 Servlet 技术

一 Servlet 基础

  1. 定义相关:

    a) 是运行在 Web 服务器上得 Java 小程序

    b) 只将处理结果返回给客户

    c) 是实现接口 Servlet 的 java 类,能被服务器调用。

    d) Servlet 类与普通的 java 类非常相似,唯一的区别是扩展了新类并实现了一些新方法。

  2. Servlet 接口原型:

    

  2. Servlet 接口说明:

    a) init ():初始化操作

    b) service():执行应用逻辑的入口点

    c) destroy():清理内存资源

  3. service 函数的具体流程:

    a) 使用一个方法service接收用户的请求,请求封装在ServletRequest类中传给这个方法。

    b) 方法从ServletRequest类中读出用户信息和请求内容,然后将响应的页面写到ServletResponse对象中。

    c) 使用Java的IO方法将它们传回到客户端

  4. 所有 servlet 的两个共同点:

    a) 扩展 GenericServlet 或 HttpServlet

    b) 所有的 servlet 至少要覆盖(override)一个方法,在其中可以实现自定义的功能。

  5. 服务器调用 Servlet 步骤:

    a) 服务器启动时,当 servlet 被配置好或被客户首次请求时,由服务器加载 servlet(本地或远程)。

    b) 服务器创建一个 servlet 类的实例来为所有请求服务。

    c) 服务器调用 servlet 的 init() 方法。

    d) 服务器针对请求构造对象

    e) 服务器调用 servlet 的 service() 方法,将上一步中构造的对象作为参数传递进去。

    f) 分析请求

    g) 如果服务器收到另一个对该 servlet 的请求,这个处理过程从步骤 e 重复。

    h) 一旦servlet容器检测到一个 servlet 要被卸载(可能是因为停止 servlet 容器或者 web 应用被卸载掉),服务器会在所有的 servlet 的 service() 线程完成之后调用servlet 的 destroy() 方法。

  6. 服务器调用 Servlet 步骤图示:

    

二 Servlet API:请自行参阅相关资料,在此不累述。

三 Servlet 和 JSP 的区别

  1. 编程方式不同:

  JSP 是为了解决 Servlet 中相对困难的编程技术而开发的技术,因此,JSP 在程序的编写方面比 Servlet 要容易的多,Servlet 严格遵循 Java 语言的编程标准,而 JSP 则遵循脚本语言的编制标准。

  2. Servlet必须在编译以后才能执行

  JSP 并不需要另外进行编译,JSP Container 会自动完成这一工作,而 Servlet 在每次修改代码之后都需要编译完才能执行。

  3. 运行速度不同

  由于 JSP Container 将 JSP 程序编译成 Servlet 的时候需要一些时间,所以 JSP 的运行速度比 Servlet 要慢一些,不过,如果 JSP 文件能毫无变化的重复使用,它在第一次以后的调用中运行速度就会和 Servlet 一样了,这是因为 JSP Container 接到请求以后会确认传递过来的JSP是否有改动,如果没有改动的话,将直接调用 JSP 编译过的 Servlet类,并提供给客户端解释执行,如果 JSP 文件有所改变,JSP Container 将重新将它编译成 Servlet,然后再提交给客户端。

  

原文地址:https://www.cnblogs.com/scut-fm/p/3782948.html