• Servlet和Jsp简介


    1. /*
    2. *作者:呆萌老师
    3. *☑csdn认证讲师
    4. *☑51cto高级讲师
    5. *☑腾讯课堂认证讲师
    6. *☑网易云课堂认证讲师
    7. *☑华为开发者学堂认证讲师
    8. *☑爱奇艺千人名师计划成员
    9. *在这里给大家分享技术、知识和生活
    10. *各种干货,记得关注哦!
    11. *vx:it_daimeng
    12. */
    • Servlet

    1servletservlet容器

    Java Servlet(Java服务器小程序)是一个基于Java技术的Web组件,运行在服务器端,它由Servlet容器所管理,用于生成动态的内容。 Servlet是平台独立的Java类,编写一个Servlet,实际上就是按照Servlet规范编写一个Java类。Servlet被编译为平台独立 的字节码,可以被动态地加载到支持Java技术的Web服务器中运行。 
       Servlet容器也叫做Servlet引擎。Servlet没有main方法,不能独立运行,它必须被部署到Servlet容器中,由容器来实例化和调用 Servlet的方法(如doGet()和doPost()),Servlet容器在Servlet的生命周期内包容和管理Servlet。在JSP技术 推出后,管理和运行Servlet/JSP的容器也称为Web容器。

    用户通过单击某个链接或者直接在浏览器的地址栏中输入URL来访问Servlet,Web服务器接收到该请求后,并不是将 请求直接交给Servlet,而是交给Servlet容器。Servlet容器实例化Servlet,调用Servlet的一个特定方法对请求进行处理, 并产生一个响应。这个响应由Servlet容器返回给Web服务器,Web服务器包装这个响应,以HTTP响应的形式发送给Web浏览器。

    Tomcat服务器接受客户请求并做出响应的过程如下:

    1. 客户端(通常都是浏览器)访问Web服务器,发送HTTP请求。 
      2)Web服务器接收到请求后,传递给Servlet容器。 
      3)Servlet容器加载Servlet,产生Servlet实例后,向其传递表示请求和响应的对象。 
      4)Servlet实例使用请求对象得到客户端的请求信息,然后进行相应的处理。 
      5)Servlet实例将处理结果通过响应对象发送回客户端,容器负责确保响应正确送出,同时将控制返回给Web服务器。

    2servlet生命周期

    现在让我们详细讨论生命周期的方法。

    init() 方法

    Servlet的init方法在一个生命周期中只被执行一次,调用service方法前,初始化必须完成;它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。因此,它是用于一次性初始化,就像 Applet 的 init 方法一样。

    init 方法的定义如下:

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

    service() 方法

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

    每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。

    下面是该方法的特征:

    1. public void service(ServletRequest request,
    2.                     ServletResponse response)
    3.       throws ServletException, IOException{}

    所以,您不用对 service() 方法做任何动作,您只需要根据来自客户端的请求类型来重写 doGet() 或 doPost() 即可。

    doGet() 和 doPost() 方法是每次服务请求中最常用的方法。下面是这两种方法的特征。

    doGet() 方法

    GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理。

    1. public void doGet(HttpServletRequest request,
    2.                   HttpServletResponse response)
    3.     throws ServletException, IOException {
    4.     // Servlet 代码
    5. }

    doPost() 方法

    POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。

    1. public void doPost(HttpServletRequest request,
    2.                    HttpServletResponse response)
    3.     throws ServletException, IOException {
    4.     // Servlet 代码
    5. }

    destroy() 方法

    destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。

    在调用 destroy() 方法之后,servlet 对象被标记为垃圾回收。destroy 方法定义如下所示:

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

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

    Servlet类加载

    Servlet 通过调用 init () 方法进行初始化。

    Servlet 调用 service() 方法来处理客户端的请求,来选择调用doGet还是doPost方法

    Servlet 通过调用 destroy() 方法终止(结束)。

    最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

    架构图

    下图显示了一个典型的 Servlet 生命周期方案。

    • 第一个到达服务器的 HTTP 请求被委派到 Servlet 容器。
    • Servlet 容器加载 Servlet,创建对象和初始化,然后调用 service() 。
    • 然后 Servlet 容器处理由多个请求产生的多个线程,每个线程执行一个单一的 Servlet 实例的 service() 方法。

    • JSP

      JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计.

    JSP技术有点类似ASP技术,它是在传统的网页HTML标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp) JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

    它实现了Html语法中的java扩展(以 <%, %>形式)。JSPServlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

    Java ServletJSP的技术基础,而且大型的Web应用程序的开发需要Java ServletJSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。

      

     

  • 相关阅读:
    XGBoost算法讲解和公式推导
    Linux环境搭建
    opencv创建窗口—cv.namedWindow()
    编译器关键字解析
    Spring的beanName生成器AnnotationBeanNameGenerator
    C++并发与多线程(2) | 线程运行开始和结束的基本方式
    花费-效益分析筛选肿瘤标记物最佳组合
    基于Razor语法的代码生成器
    ElasticSearch入门之es简易版可视化界面, elasticsearch-head安装 06
    DM8表空间管理
  • 原文地址:https://blog.csdn.net/daimenglaoshi/article/details/126342452