`

servlet初步学习

阅读更多

一、servlet的实现方式:

     1、实现servlet接口(偏向底层)

         Servlet接口有五个方法

         init初始化,就是把servlet装载到内存中,只会被调用一次

         getServletConfig获取servletConfig对象

         service主要的服务方法,放业务逻辑,每次都会被调用

         getServletInfo得到servlet配置信息

         destroy销毁该servlet,从内存中清除掉

 

     2、继承GenericServlet(觉得1不好用,就开发了这个,现在基本没啥用)

         继承GenericServlet

         GenericServlet实现了servlet接口, 然后只有一个抽象方法需要你自己去重写,那就是service方法,所以相比来说init别的方法他都帮你实现好了,只要你写service方法就可以了。,至少看起来继承GenericServlet比直接实现servlet接口要方便,这个类是在javax.servlet.GenericServlet下的。

 

     3、继承HttpServlet(现在大多数用这个)

         继承HttpServlet

          因为后来发现servlet主要是为了服务于http请求的,而且发现GenericServlet对于http来说还不够好,所以有了HttpServlet,首先它是继承自GenericServlet,然后它有很多http相关的方法,post,get,put等待,用户可以根据自己需要来实现这些方法,每个过来的请求都会调用service方法,最后service会根据不用的请求分发到不同的地方去做。

 

二、servlet的生命周期:

  1. Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。

          (1)加载:容器通过类加载器使用servlet类对应的文件加载servlet

          (2)创建:通过调用servlet构造函数创建一个servlet对象
          (3)初始化:调用init方法初始化
          (4)处理客户请求:每当有一个客户请求,容器会创建一个线程来处理客户请求
          (5)卸载:调用destroy方法让servlet自己释放其占用的资源
     2.init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,         负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入               Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。
     3.service():它是Servlet的核心,负责响应客户的请求。每当一个客户请求一个HttpServlet对        象,该对象的Service()方法就要调用,而且传递给这个方法一个“请求”(ServletRequest)对        象和一个“响应”(ServletResponse)对象作为参数。在HttpServlet中已存在Service()方法。        默认的服务功能是调用与HTTP请求的方法相应的do功能。
      4.destroy(): 仅执行一次,在服务器端停止且卸载Servlet时执行该方法。当Servlet对象退出          生命周期时,负责释放占用的资源。一个Servlet在运行service()方法时可能会产生其他的线程,        因此需要确认在调用destroy()方法时,这些线程已经终止或完成。

 

三、servlet的工作原理:

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

     2、每一个自定义的Servlet都必须实现Servlet的接口,Servlet接口中定义了五个方法,其中比较重要的三个方法涉及到Servlet的生命周期,分别是上文提到的init(),service(),destroy()方法。GenericServlet是一个通用的,不特定于任何协议的Servlet,它实现了Servlet接口。而HttpServlet继承于GenericServlet,因此HttpServlet也实现了Servlet接口。所以我们定义Servlet的时候只需要继承HttpServlet即可。

     3、Servlet接口和GenericServlet是不特定于任何协议的,而HttpServlet是特定于HTTP协议的类,所以HttpServlet中实现了service()方法,并将请求ServletRequest、ServletResponse 强转为HttpRequest 和 HttpResponse。

    4、首先当servlet第一次被调用的时候,会调用servlet的init方法(只调用一次),把servlet实例装载到内存中。之后会调用service方法,当第二次servlet被访问的时候就会直接调用service函数。只有当web应用关闭,或者容器关闭,或者电脑关闭时候,才会调用destroy方法销毁servlet,从内存中清除掉。下面是浏览器发出请求后servlet执行的流程图



 

  • 大小: 48.3 KB
分享到:
评论

相关推荐

    Java的servlet初步学习

    Servlet是Java Web开发中的核心组件,它是一种服务器端的Java应用程序,主要负责处理客户端(通常是Web浏览器)的请求,并返回相应的响应。Servlet是独立于平台和协议的,它可以生成动态的Web页面,作为HTTP服务器与...

    JAVA100例之实例79Servlet的初步学习

    JAVA100例之实例79Servlet的初步学习

    servlet技术初步入门

    通过J2-03第三课 servlet技术初步入门的学习资料,你可以进行以下实践: 1. 创建一个简单的Servlet,处理GET请求并返回欢迎消息。 2. 学习如何通过Servlet传递参数,并在Servlet中处理这些参数。 3. 理解Servlet的...

    JavaServlet程序设计初步

    通过学习《JavaServlet程序设计初步》,你将掌握如何使用Servlet构建Web应用的基本技能,包括处理HTTP请求、响应、管理会话、处理异常等。这将为你的IT职业生涯打下坚实的基础,助你在Web开发领域大展拳脚。祝你在...

    关于servlet的学习基础

    通过以上介绍,初学者应能对Servlet的基本概念、工作原理和使用方法有初步理解。实践是学习的最佳方式,尝试编写并运行`FirstServlet`,体验Servlet的运行过程,将有助于巩固理论知识。在后续的学习中,深入理解MVC...

    servlet的分步学习

    通过以上内容,你已对Servlet有了初步的认识。继续深入,你将掌握更多高级特性,如异步处理、WebSocket支持、Servlet上下文(ServletContext)、监听器(Listener)等,进一步提升你的Web开发能力。记得实践是检验...

    servlet的学习一些具体的代码

    ### 关于Servlet的基础认知与实例解析 #### 一、Servlet简介 Servlet是一种Java技术,用于扩展Web服务器的能力,尤其在处理HTTP请求时表现突出。...理解这些基本概念对于学习Java Web开发至关重要。

    servlet学习

    Servlet是Java平台上的一个核心技术,用于开发动态...通过实践上述例子,你可以对Servlet有一个初步的认识,并为进一步深入学习打下坚实的基础。记住,只有通过实践,才能真正掌握这些概念,所以不妨动手尝试一下吧!

    servlet基础入门教程

    通过这个基础入门教程,你应该对Servlet有了初步了解,可以开始编写简单的Servlet应用。然而,深入学习还包括MVC框架(如Spring MVC)、异步处理、过滤器、监听器等内容。继续探索,你将在Java Web开发领域更加熟练...

    servlet编程初步

    servlet编程初步,可以帮助初学者好好的学习,提升基础

    servlet2.5源码

    此外,源码中的异常处理、线程安全、性能优化等方面都是学习的重点,这对于任何Java Web开发者来说都是非常宝贵的经验。同时,源码包中的编译包可以帮助你在项目中直接引用,无需从头编译源码。

    HttpClient实例_001_初步实现项目01的servlet,与项目02的servlet,之间数据访问

    `httpClient_001`和`httpClient_002`可能是这个教程的两个部分,分别涵盖HttpClient的初步使用和更复杂的用法。 总之,HttpClient是Java中强大的HTTP客户端工具,能够帮助开发者轻松地实现HTTP请求,适用于各种网络...

    servlet入门配置

    - 初步了解Servlet的配置和使用,接下来可以学习更深入的Servlet特性,如生命周期管理、过滤器、监听器等。 - 学习如何处理表单数据、使用session和cookie进行用户状态管理,以及与其他Java框架(如Spring MVC)的...

    JSP+SERVLET+MYSQL实现的增删改查javaweb新闻管理系统小例子,主页有具体介绍,界面图片

    适合人群:初学者,初步接触SERVLET,适合初学者的联系小项目。 能学到什么:①练习JSP,EL表达式,SERVLET关键点技术项目;②分层开发的管理系统,都是如何设计和实现的,简单的展现,通俗易懂。 阅读建议:此资源以...

    JSP+servlet开发的简单登陆系统

    通过这个简单的登录系统,你可以逐步掌握JSP和Servlet的基础知识,为进一步学习更复杂的Web应用打下坚实基础。在实际项目中,你还需要学习如何使用数据库存储用户信息,以及如何处理更复杂的安全和性能问题。

    10_传智播客在线支付_完成用于处理支付响应的Servlet的初步编写和调试.rar

    通过学习这个压缩包中的内容,开发者可以掌握在线支付系统的后台实现,了解支付流程的关键步骤,以及如何通过Servlet有效地处理这些过程。对于初学者来说,这是一个很好的实践项目,可以帮助他们深入理解Servlet和...

    Servlet与JSP核心编程(第二版)

    在本书中,读者可以深入学习Servlet的生命周期、服务机制以及如何通过Servlet进行HTTP请求的处理。例如,Servlet的初始化、服务和销毁三个阶段,以及如何使用doGet和doPost方法处理HTTP的GET和POST请求。此外,还会...

    servlet帮助文档 API 英文版(2.3-3.0)

    Servlet是Java Web开发中的核心组件,它用于扩展服务器的功能,处理HTTP请求并返回响应。这份压缩包包含了从Servlet 2.3...通过深入学习和实践,开发者可以更好地掌握Servlet技术,从而构建高效、可维护的Web应用程序。

Global site tag (gtag.js) - Google Analytics