• 五 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,然后再提交给客户端。

      

  • 相关阅读:
    吴恩达机器学习笔记 —— 3 线性回归回顾
    springboot整合pagehelper实现分页
    Spring 线程池实战
    Java web后台插入数据库中文乱码问题解决
    Cesium项目实战(5)-城市各类POI数据制作、加工、展示
    Cesium项目实战(2)-城市行政区划信息展示以及专题信息展示
    【mybatis】mybatis中避免where空条件后面添加1=1垃圾条件的 优化方法
    Java之Json转List实体
    Maven项目META-INF文件夹不存在的问题
    Maven打jar包把配置文件放在META-INF目录下
  • 原文地址:https://www.cnblogs.com/scut-fm/p/3782948.html
Copyright © 2020-2023  润新知