Servlet概述
JSP的前身就是Servlet。因此我们乐意清楚的知道Servlet是JSP的基础。
Servlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。
Servlet就像任何其他的Java类一样已经被创建和编译。
Servlet生命周期
Servlet生命周期可被定义为从创建直到销毁的整个过程。servlet生命周期阶段包括初始化、加载、实例化、服务和销毁。
用户访问,发现没有Servlet对象,先实例一个对象,然后调用init()方法进行初始化,然后调用service()进行交互,最后关闭调用destroy()方法进行摧毁。
- init()方法
init()方法被设计成只调用一次。它在第一次创建Servlet时被调用,在后续每次用户请求时不再调用。 - service() 方法
service()方法是执行实际任务的主要方法。Servlet容器(即Web服务器)调用service()方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。 - destroy()方法
destroy()方法只会被调用一次,在Servlet生命周期结束时被调用。destroy()方法可以让Servlet关闭数据库连接、停止后台线程、把Cookie列表或点击计数器写入到磁盘,并执行其他类似的清理活动。
Servlet 容器处理由多个线程产生的多个请求,每个线程执行一个单一的Servlet实例的service()方法。
Servlet加载
在下列时刻Servlet容器装载Servlet:
- Servlet容器启动时自动装载某些Servlet,实现它只需要在web.xml文件中的<Servlet></Servlet>之间添加如下代码:<loadon-startup>1</loadon-startup>,或者在注解中加上loadOnStartup=1,数字越小表示优先级越高。
- 在Servlet容器启动后,客户首次向Servlet发送请求。
- Servlet类被更新后,重新加载Servlet。
Servlet获取JSP九大内置对象
Servlet路径
- 请求重定向
response.sendRedirect(request.getContextPath() +"/test.jsp"); - 服务器内部转发
request.getRequestDispatcher("/test.jsp").forward(request.response)
设置初始化数据
设置初始化数据设置两个变量存放数据,并用getter和setter方法进行了封装 调用初始化方法的时候获取初始化数据 打印初始化数据 运行显示出结果
网友评论