• struts2.1笔记02:servlet简介


    1.
        Servlet 是在服务器上运行的小程序。这个词是在 Java applet的环境中创造的,Java applet 是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。
    服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口CommonGateway Interface,CGI)应用程序完成的。然而,在服务器上运行 Java,这种程序可使用 Java 编程语言实现。在通信量大的服务器上,JavaServlet 的优点在于它们的执行速度更快于 CGI 程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。
    实现过程
    最早支持 Servlet 技术的是 JavaSoft 的 Java Web Server。此后,一些其它的基于 Java 的 Web Server 开始支持标准的 Servlet API。Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。这个过程为:
    1) 客户端发送请求至服务器端;
    2) 服务器将请求信息发送至 Servlet;
    3) Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
    4) 服务器将响应返回给客户端。
    Servlet 看起来像是通常的 Java 程序。Servlet 导入特定的属于 Java Servlet API 的包。因为是对象字节码,可动态地从网络加载,可以说 Servlet 对 Server 就如同 Applet对 Client 一样,但是,由于 Servlet 运行于 Server 中,它们并不需要一个图形用户界面。从这个角度讲,Servlet 也被称为 FacelessObject。
    一个 Servlet 就是 Java 编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然 Servlet 可以对任何类型的请求产生响应,但通常只用来扩展 Web 服务器的应用程序。
    目前最新版本为 3.1。
     

    2.

    生命周期:

    1. 客户端请求该 Servlet;
    2. 加载 Servlet 类到内存;
    3. 实例化并调用init()方法初始化该 Servlet;
    4. service()(根据请求方法不同调用doGet() 或者 doPost(),此外还有doGet()、doPut()、doTrace()、doDelete()、doOptions());
    5. destroy()。
    加载和实例化 Servlet。这项操作一般是动态执行的。然而,Server 通常会提供一个管理的选项,用于在 Server 启动时强制装载和初始化特定的 Servlet。
    Server 创建一个 Servlet的实例
    第一个客户端的请求到达 Server
    Server 调用 Servlet 的 init() 方法(可配置为 Server 创建 Servlet 实例时调用,在 web.xml 中 <servlet> 标签下配置 <load-on-startup> 标签,配置的值为整型,值越小 Servlet 的启动优先级越高)
    一个客户端的请求到达 Server
    Server 创建一个请求对象,处理客户端请求
    Server 创建一个响应对象,响应客户端请求
    Server 激活 Servlet 的 service() 方法,传递请求和响应对象作为参数
    service() 方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息
    service() 方法使用响应对象的方法,将响应传回Server,最终到达客户端。service()方法可能激活其它方法以处理请求,如 doGet() 或 doPost() 或程序员自己开发的新的方法。
    对于更多的客户端请求,Server 创建新的请求和响应对象,仍然激活此 Servlet 的 service() 方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用 init() 方法。一般 Servlet 只初始化一次(只有一个对象),当 Server 不再需要 Servlet 时(一般当 Server 关闭时),Server 调用 Servlet 的 destroy() 方法。

    工作模式

    客户端发送请求至服务器
    服务器启动并调用 Servlet,Servlet 根据客户端请求生成响应内容并将其传给服务器
    服务器将响应返回客户端

     

  • 相关阅读:
    poj 图算法
    类里二级排序函数使用
    数学题目(高斯消元)
    多校联合比赛部分题目
    poj 3007 & poj 3096
    优先队列
    hdu 各种 A + B
    几道数学题目
    今天下午
    Java常用的几种设计模式
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4605774.html
Copyright © 2020-2023  润新知