• 4.1 J2EE之Servlet(简述)


    4.1 J2EE之Servlet

    一、Servlet简介

      Servlet是sun公司提供的一门用于开发动态web资源的技术。
      Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:
      1、编写一个Java类,实现servlet接口。
      2、把开发好的Java类部署到web服务器中。
      按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet

    二、Servlet的运行过程

    Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:
      ①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。
      ②装载并创建该Servlet的一个实例对象。 
      ③调用Servlet实例对象的init()方法。
      ④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。
      ⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。 

    三、Servlet的生命周期

    Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:

    1. Servlet 通过调用 init () 方法进行初始化。
    2. Servlet 调用 service() 方法来处理客户端的请求。
      1. service 方法在适当的时候调用 doGet、doPost、doPut、doDelete 等方法。
      2. 所以,您不用对 service() 方法做任何动作,您只需要根据来自客户端的请求类型来重写 doGet() 或 doPost() 即可。
      3. GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理。
      4. POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。
    3. Servlet 通过调用 destroy() 方法终止(结束)。
    4. 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

    四、Servlet与普通Java类的区别  

      Servlet是一个供其他Java程序(Servlet引擎)调用的Java类,它不能独立运行,它的运行完全由Servlet引擎来控制和调度。
      针对客户端的多次Servlet请求,通常情况下,服务器只会创建一个Servlet实例对象,也就是说Servlet实例对象一旦创建,它就会驻留在内存中,为后续的其它请求服务,直至web容器退出,servlet实例对象才会销毁。
      在Servlet的整个生命周期内,Servlet的init方法只被调用一次。而对一个Servlet的每次访问请求都导致Servlet引擎调用一次servlet的service方法。对于每次访问请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletResponse响应对象,然后将这两个对象作为参数传递给它调用的Servlet的service()方法,service方法再根据请求方式分别调用doXXX方法。

    实例以及更详细链接:https://www.runoob.com/servlet/servlet-tutorial.html

  • 相关阅读:
    如何解决tensorflow报:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
    windows10下如何进行源码编译安装tensorflow
    windows10如何安装cpu版本tensorflow
    git:RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Reques t Entity Too Larg
    ubuntu 18.04 64bit如何安装GPU版本tensorflow
    pip安装tensorflow-gpu好慢怎么办
    linux下split切割的文件如何合并
    Java使用FileOutputStream写入文件
    springmvc文件上传 参数为MultipartFile 转换为File
    Java中FileOutputStream流的write方法
  • 原文地址:https://www.cnblogs.com/Smileing/p/12175927.html
Copyright © 2020-2023  润新知