Servlet学习笔记

Servlet概述

JSP的前身就是Servlet。因此我们乐意清楚的知道Servlet是JSP的基础。
Servlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。
Servlet就像任何其他的Java类一样已经被创建和编译。

Servlet在Web应用程序中的位置

Servlet生命周期

Servlet生命周期可被定义为从创建直到销毁的整个过程。servlet生命周期阶段包括初始化、加载、实例化、服务和销毁。
用户访问,发现没有Servlet对象,先实例一个对象,然后调用init()方法进行初始化,然后调用service()进行交互,最后关闭调用destroy()方法进行摧毁。

  1. init()方法
    init()方法被设计成只调用一次。它在第一次创建Servlet时被调用,在后续每次用户请求时不再调用。
  2. service() 方法
    service()方法是执行实际任务的主要方法。Servlet容器(即Web服务器)调用service()方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。
  3. destroy()方法
    destroy()方法只会被调用一次,在Servlet生命周期结束时被调用。destroy()方法可以让Servlet关闭数据库连接、停止后台线程、把Cookie列表或点击计数器写入到磁盘,并执行其他类似的清理活动。

Servlet 容器处理由多个线程产生的多个请求,每个线程执行一个单一的Servlet实例的service()方法。

Servlet加载

在下列时刻Servlet容器装载Servlet:

  1. Servlet容器启动时自动装载某些Servlet,实现它只需要在web.xml文件中的<Servlet></Servlet>之间添加如下代码:<loadon-startup>1</loadon-startup>,或者在注解中加上loadOnStartup=1,数字越小表示优先级越高。
  2. 在Servlet容器启动后,客户首次向Servlet发送请求。
  3. Servlet类被更新后,重新加载Servlet。

Servlet获取JSP九大内置对象

Servlet路径

  • 请求重定向
    response.sendRedirect(request.getContextPath() +"/test.jsp");
  • 服务器内部转发
    request.getRequestDispatcher("/test.jsp").forward(request.response)

设置初始化数据

设置初始化数据

设置两个变量存放数据,并用getter和setter方法进行了封装
调用初始化方法的时候获取初始化数据
打印初始化数据
运行显示出结果

IDEA开发Servlet

推荐阅读更多精彩内容