精华内容
下载资源
问答
  • 2019-03-20 21:26:56

    1. servlet的生命周期

           1)实例化,有web容器实例化servlet实例
           2)初始化,容器调用init()方法
           3)服务,客户端请求servlet时,容器调用service()方法
           4)销毁,结束服务,调用destroy()方法

    2. 相关方法:

           1)当请求到达时,运行其service()方法。service()自动派遣运行与请求相对应的doXXX(doGet或者doPost)方法

           2)request.getAttribute()和request.getParameter()

    •  getParameter获取到的值只能是字符串,不可以是对象,而getAttribute获取到的值是Object类型的。
    • 通过form表单或者url来向另一个页面或者servlet传递参数的时候需要用getParameter获取值;getAttribute只能获取setAttribute的值

           3)forward和redirect

    •  对于直接方式forward,客户端浏览器只发出一次请求,Servlet把请求转发给Servlet、HTML、JSP或其它信息资源,由第2个信息资源响应该请求,两个信息资源共享同一个request对象。
    •  对于间接方式redirect,服务器端在响应第一次请求的时候,让浏览器再向另外一个URL发出请求,从而达到转发的目的。它本质上是两次HTTP请求,对应两个request对象。
    更多相关内容
  • JavaWeb新版教程Servlet-1vlet-Servlet生命周期方法.avi
  • Servlet生命周期

    2021-01-20 02:23:14
    1.创建:当用户第一次请求servlet映射的路径时,服务器会加载servlet并...该方法servlet生命周期中,只会执行一次。 3.服务:每当用户有一个servlet请求,服务器会调用service()方法处理用户请求,哈哈,方法在生命周期
  • Servlet生命周期

    2020-12-22 14:33:21
    Servlet生命周期Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:   Servlet 加载—>实例化—>服务—>销毁。   1.Servlet 通过调用 init () 方法进行初始化。 2....
  • Servlet生命周期中,仅执行一次init()方法,它是在服务器装入Servlet 时执行的,可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入 Servlet。无论有多少客户机访问Servlet,都不会重复执行init(); ...

    (1)问题分析:

    考官主要想考核Java基本功的掌握和应用。一方面,是servlet的生命周期;另一方面,则是其单例非线程安全对于安全这块的一个处理。

    (2)核心答案讲解:

    1)init()方法

    在Servlet的生命周期中,仅执行一次init()方法,它是在服务器装入Servlet 时执行的,可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入 Servlet。无论有多少客户机访问Servlet,都不会重复执行init();

    2)service()方法

    它是Servlet的核心,每当一个客户请求一个HttpServlet对象,该对象的 Service()方法就要调用,而且传递给这个方法一个“请求”(ServletRequest) 对象和一个“响应”(ServletResponse)对象作为参数。在HttpServlet中已存 在Service()方法。默认的服务功能是调用与HTTP请求的方法相应的do功能。

    3)destroy()方法

    仅执行一次,在服务器端停止且卸载Servlet时执行该方法,有点类似于C++的 delete方法。一个Servlet在运行service()方法时可能会产生其他的线程,因 此需要确认在调用destroy()方法时,这些线程已经终止或完成。

    (3)问题扩展

    如何解决servlet线程安全:

    ☛第一种,继承SingleThreadModel但是这样每次都会创建一个新的servlet实例, 但这样消耗服务器的内存,降低了性能,并且这个接口现在已经过时了,不推荐使用。

    ☛第二种:我们尽量避免使用全局变量,就我个人而言,我比较喜欢使用这种方法。

    ☛第三种,我们可以通过使用ThreadLocal, 内部结构是一个Map结构,用当前线 程作为key,他会创建多个副本。get,set方法。

    ☛第四种,我们当然还可以来加锁,进行解决线程问题。

    而且我还知道,向我们这种常用的MVC框架,struts1,spring这些MVC框架,都 是基于servlet发展而来的,就比如struts1 的核心总控制器是ActionServlet, 而springMVC的前端总控制器是dispatchServlet,在项目我们曾经用serlet来 生成 图片验证码的,防止用户进行暴力破解。

    (4)结合项目中使用

    servlet的配置文件 web.xml
    图片
    描述:

    在web.xml中,首先需要写一个servlet标签,servlet标签中有两个子标签,一个叫servlet-name,这个name可以随便起,但是要保证唯一性,除此之外,在这个servlet-name下有一个servlet-class,这个servlet-class对应的就是我后台提高服务的servlet,除此之外还有一个servlet-mapping,这个里边首先有一个servl-name。,这个servl-name首先要保证和上边的servlet-name保持一致,除此之外还有一个url-pattern,这是一个虚拟路径,是用来发送请求的url地址。

    Servlet的生命周期是由Servlet容器来控制的,它始于装入Web服务器的内存时,并在终止或重新装入Servlet时结束。

    在代码中,Servlet生命周期由接口javax.servlet.Servlet定义。所有的Java Servlet 必须直接或间接地实现javax.servlet.Servlet接口,这样才能在Servlet Engine上运行。

    展开全文
  • 下面小编就为大家带来一篇servlet配置方法及其生命周期详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • servlet生命周期详细图解,矢量图。 详细的解释请参考本人博客:http://blog.csdn.net/dwyers/article/details/38435949
  • Servlet生命周期详解

    2021-12-27 15:33:24
    Servlet常见面试题及Servlet生命周期详解

    一、Servlet 是什么及作用?

    1、Servlet 是什么?

    Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性, 是运行在 Web 服务器或应用服务器上的程序。

    2、Servlet 的作用

    它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。主要功能在于收集来自网页表单的用户输入,交互式地浏览和生成数据,还可以生成动态Web内容。

    二、Servlet 的生命周期

    Servlet 生命周期可被定义为从创建直到毁灭的整个过程。

    三个步骤即:初始化------>处理请求------>销毁

    创建Servlet对象后---------->初始化(调用 init () 方法)--------->处理/响应客户端的请求(调用 service() 方法)--------->销毁(调用 destroy() 方法,最后由 JVM 的垃圾回收器进行垃圾回收)

    三、生命周期方法详解

    创建Servlet对象,通过服务器反射机制创建Servlet对象,第一次请求时才会创建。(默认)

    1. init() 方法

    调用Servlet对象的init()方法,初始化Servlet的信息,init()方法只会在创建后被调用一次(初始化阶段)
    (1)init 方法被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。因此,它是用于一次性初始化,创建于用户第一次调用该 Servlet 的 URL 时,也可以指定 Servlet 在服务器第一次启动时被加载。

    (2)当用户调用一个 Servlet 时,就会创建一个 Servlet 实例,每一个用户请求都会产生一个新的线程,适当的时候移交给 doGet 或 doPost 方法。

    (3)init() 方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期。

    init 方法的定义如下:

    public void init() throws ServletException {
      // 初始化代码...
    }
    

    2. service() 方法

    响应请求,调用service()或者是doGet(),doPost()方法来处理请求,这些方法是运行的在多线程状态下的。(响应客户请求阶段)

    (1)service() 方法是执行实际任务的主要方法,处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。

    (2)每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。

    (3)Servlet接收和响应客户请求的过程,首先客户发送一个请求,Servlet是调用service()方法对请求进行响应的,通过源代码可见,service()方法中对请求的方式进行了匹配,选择调用doGet,doPost等这些方法,然后再进入对应的方法中调用逻辑层的方法,实现对客户的响应。由于在Servlet接口和GenericServlet中是没doGet,doPost等等这些方法的,HttpServlet中定义了这些方法,所以,我们每次定义一个Servlet的时候,都必须实现doGet或 doPost等这些方法。

    (4)service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法进行处理。

    service方法的定义如下:

    public void service(ServletRequest request,ServletResponse response) 
          throws ServletException, IOException{
    }
    

    由于service() 方法由容器调用,service 方法在适当的时候会调用 doGet、doPost、doPut、doDelete 等方法。所以,我们不用对 service() 方法做任何处理,只需要根据客户端的请求类型来重写 doGet() 或 doPost() 即可。

    3. doGet() 方法

    用于处理请求,方法是运行的在多线程状态下的。(响应客户请求阶段)

    doGet() 是服务请求中最常用的方法,用于处理请求,当URL的请求类型为GET请求 ,或者是一个未指定请求类型HTML表单,那么该请求将由 doGet() 方法处理。

    doGet方法的定义如下:

    public void doGet(HttpServletRequest request,HttpServletResponse response)
        throws ServletException, IOException {
        // Servlet 代码
    }
    

    4. doPost() 方法

    用于处理请求,方法是运行的在多线程状态下的。(响应客户请求阶段)

    doPost() 是服务请求中最常用的方法,用于处理请求,当请求来自一个特别指定了 请求类型为POST的 HTML 表单,那么该请求将由doPost() 方法处理。

    doPost方法的定义如下:

    public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        // Servlet 代码
    }
    

    5、destroy() 方法

    在长时间没有被调用或者是服务器关闭时,会调用destroy()方法来销毁Servlet对象。(终止阶段)

    (1)destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。

    (2)destroy() 方法可以让Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。

    (3)在调用 destroy() 方法之后,servlet 对象被标记为垃圾回收。

    destroy 方法定义如下:

    public void destroy() {
        // 终止化代码...
      }
    

    四、生命周期图解

    理解了上面的内容再看周期图就会容易很多。图片来源于网络
    在这里插入图片描述

    展开全文
  • 小伙伴们知道servlet吗...我们要了解,一个Servlet生命周期一共分为三个阶段:一、初始化阶段 调用init()方法一般在下列场景Servlet容器会装载Servlet:1)、Servlet容器启动时自动装载某些Servlet时,实现它只需要在...

    小伙伴们知道servlet吗?这次我们要说的是java中的servlet,小伙伴们知道servlet的声明周期都包括哪些吗?下面就听小编介绍介绍吧。

    Servlet生命周期包含哪些?

    我们要了解,一个Servlet生命周期一共分为三个阶段:

    一、初始化阶段 调用init()方法

    一般在下列场景Servlet容器会装载Servlet:

    1)、Servlet容器启动时自动装载某些Servlet时,实现它只需要在web.XML文件中的之间添加如下代码:1

    2)、Servlet容器启动后,客户首次向Servlet发送请求时

    3)、Servlet类文件被更新后,重新装载Servlet时

    Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在一个Servlet的整个生命周期内,init()方法只会被调用一次。

    二、响应客户请求阶段 调用service()方法

    一般对于用户到达Servlet的请求,Servlet容器会创建一个特定于这个请求的ServletRequest对象与ServletResponse对象,并调用Servlet的service方法。service方法会从ServletRequest对象获得客户请求信息,之后处理这个请求,并通过ServletResponse对象向客户返回响应信息。

    三、终止阶段 调用destroy()方法

    通常来说,当一个WEB应用被终止,或一个Servlet容器终止运行,或一个Servlet容器重新装载Servlet新实例时,Servlet容器会优先调用Servlet中的destroy()方法,这个destroy()方法能够释放掉Servlet所占用的资源。

    Servlet一般何时被创建?

    1)、在全部默认情况下,web客户端第一次请求访问某个Servlet的时候,WEB容器就会创建这个Servlet的实例。

    2)、在web.xml文件中,如果元素指定了子元素时,Servlet容器就会在启动web服务器时,按顺序创建并初始化Servlet对象。

    以上就是关于servlet周期的所有内容了,你了解了吗?如果需要了解更多相关servlet常见问题,就请关注奇Q工具网了解详情吧。

    推荐阅读:

    展开全文
  • Servlet生命周期包括加载和实例化、初始化、处理请求以及服务结束; Servlet生命周期是由容器进行管理的,不可以被程序员手工销毁; Servlet被服务器实例化后(用户第一次访问该Servlet时),容器运行其init方法,...
  • servlet生命周期及其方法

    千次阅读 2018-10-28 18:46:10
    导语:在学习servlet的过程中,要弄清楚它的生命周期是非常重要的,在面试过程中也会经常被问到。servlet是Javaee中的接口。 1.servlet生命周期。 a.实例化,有web容器实例化servlet实例 b.初始化,容器调用init()...
  • Servlet 生命周期分为三个阶段: (1)初始化阶段:调用 init() 方法 ...Servlet生命周期可以分为加载、实例化、初始化、处理客户请求和卸载五个阶段,体现在方法上主要是init()、service()、和destr
  • Servlet生命周期 分为初始化,运行和销毁...Servlet_生命周期:首先加载servlet的class,实例化servlet,然后初始化servlet调用init()的方法,接着调用服务的service的方法处理doGet和doPost方法,最后器关闭时候...
  • 本人学习Servlet的笔记。可以很好区别jsp与Servlet之间的区别
  • servlet生命周期

    2017-08-27 22:56:53
    可以了解一下周期
  • Servlet生命周期的简单理解

    千次阅读 2022-04-20 13:22:02
    1.顾名思义,对servlet来说,它的生命周期指的就是从创建直到毁灭的整个过程。 其流程可简化为: Servlet 初始化后调用init ()方法。(该方法只在最开始只调用一次); Servlet 调用service()方法来处理客户端的...
  • 简述servlet生命周期

    2019-06-26 16:02:55
    servlet生命周期 主要有三个方法: init()初始化阶段 service()处理客户端请求阶段 destroy()终止阶段 初始化阶段: Servlet容器加载Servlet,加载完成后,Servlet容器会创建一个Servlet实例并调用init()方法,init...
  • 注:本示例中有5章图片,但因为上传比较麻烦,所以就放在附件中 博文链接:https://lvp.iteye.com/blog/234610
  • 【Java笔试题】Servlet生命周期

    千次阅读 2019-04-24 20:48:19
    1.下列有关Servlet的生命周期,...B 在Servlet生命周期的服务阶段,执行service()方法,根据用户请求的方法,执行相应的doGet()或是doPost()方法 C 在销毁阶段,执行destroy()方法后会释放Servlet 占用的资源 D...
  • servelt生命周期 主要分为三个阶段 1. 初始化阶段: 调用 init方法 2. 响应客户端请求:调用service 方法 3. 终止:调用 destroy方法 初始化阶段: ​ 容器(tomcat等)装载servlet servlet容器启动的时候,会自动...
  • 简单完整讲述Servlet生命周期

    万次阅读 多人点赞 2020-08-24 11:47:46
    servlet生命周期过程 1.加载web.xml文件——当前只去解析xml文件,知道servlet的存在,此时还没有去创建servlet。 <!-- 声明servlet --> <servlet> <!-- servlet的别名 --> <servlet-name&...
  • 主要为大家详细介绍了Servlet生命周期与工作原理的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Servlet生命周期 Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程: Servlet 通过调用init ()方法进行初始化。 Servlet 调用service()方法来处理客户端的请求。 Servlet 通过...
  • Servlet生命周期包括:创建、初始化、执行、销毁四大阶段。 1、创建:在启动Tomcat的过程中,会根据配置文件来决定Servlet实例何时创建,默认在第一次被访问时创建,可以通过配置web.xml中的<load-on-startup&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 112,310
精华内容 44,924
关键字:

servlet生命周期方法