博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【java】servlet 的api和生命周期
阅读量:2240 次
发布时间:2019-05-09

本文共 2727 字,大约阅读时间需要 9 分钟。

文章目录

上一节,我们对servlet进行了快速入门,我们可以发现,我们的servlet中主要有以下几个方法。

@Override	public void service(ServletRequest arg0, ServletResponse arg1)			throws ServletException, IOException {
// TODO Auto-generated method stub } @Override public void destroy() {
// TODO Auto-generated method stub } @Override public ServletConfig getServletConfig() {
// TODO Auto-generated method stub return null; } @Override public String getServletInfo() {
// TODO Auto-generated method stub return null; } @Override public void init(ServletConfig arg0) throws ServletException {
// TODO Auto-generated method stub }

今天我们主要就讲解以下三个主要方法:

@Override	public void init(ServletConfig arg0) throws ServletException {
// TODO Auto-generated method stub }@Override public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
// TODO Auto-generated method stub } @Override public void destroy() {
// TODO Auto-generated method stub }

(1)Servlet接口中的方法简介:

1)init(ServletConfig config)

何时执行:servlet对象创建的时候执行

ServletConfig : 代表的是该servlet对象的配置信息


我们实现init方法:

@Override	public void init(ServletConfig arg0) throws ServletException {
System.out.print("init is running"); }

那它什么时候运行呢。

我们先启动Tomcat服务器。。。。。。。。。。。。。。。。。。。
在打印信息中,我们发现,并没有打印“init is running”,所以我们可知,init方法并不在此时运行。
我们在浏览器中输入网址:
。。。。。。。。。。。。。。。。。。。。。。
我们会发现打印如下信息:
在这里插入图片描述
我们再次刷新网页,我们会发现打印信息为:
在这里插入图片描述
为此,我们可以判断,init方法仅仅会在第一次创建对象的时候执行,随后在访问的时候,仅仅执行service方法了。

2)service(ServletRequest request,ServletResponse response)

何时执行:每次请求都会执行(我们在上文中可以得到证实。)

ServletRequest :代表请求 认为ServletRequest 内部封装的是 http请求的信息
ServletResponse :代表响应 认为要封装的是响应的信息

3)destroy()

何时执行:servlet销毁的时候执行


package mypackage.servlet;import java.io.IOException;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class QuickStartServlet implements Servlet{
@Override public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("QuickStartServlet is running"); } @Override public void destroy() {
System.out.println("destroy is running"); } @Override public ServletConfig getServletConfig() {
// TODO Auto-generated method stub return null; } @Override public String getServletInfo() {
// TODO Auto-generated method stub return null; } @Override public void init(ServletConfig arg0) throws ServletException {
System.out.println("init is running"); } }

我们先重启服务器:

在这里插入图片描述
我们访问服务:
在这里插入图片描述
我们关闭Tomcat服务器:
在这里插入图片描述

(2)Servlet的生命周期(面试题)

1)Servlet何时创建

默认第一次访问servlet时创建该对象

2)Servlet何时销毁

服务器关闭servlet就销毁了

3)每次访问必然执行的方法

service(ServletRequest req, ServletResponse res)方法

转载地址:http://cxhbb.baihongyu.com/

你可能感兴趣的文章
解决问题之 MySQL慢查询日志设置
查看>>
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>
PHPstudy中遇到的坑No input file specified,以及传到linux环境下遇到的坑,模板文件不存在
查看>>
TP5.1事务操作和TP5事务回滚操作多表
查看>>
composer install或composer update 或 composer require phpoffice/phpexcel 失败解决办法
查看>>
TP5.1项目从windows的Apache服务迁移到linux的Nginx服务需要注意几点。
查看>>
win10安装软件 打开时报错 找不到 msvcp120.dll
查看>>
PHPunit+Xdebug代码覆盖率以及遇到的问题汇总
查看>>
PHPUnit安装及使用
查看>>
PHP项目用xhprof性能分析(安装及应用实例)
查看>>
composer安装YII
查看>>
Sublime text3快捷键演示
查看>>
sublime text3 快捷键修改
查看>>
关于PHP几点建议
查看>>
硬盘的接口、协议
查看>>
VLAN与子网划分区别
查看>>
Cisco Packet Tracer教程
查看>>
02. 交换机的基本配置和管理
查看>>
03. 交换机的Telnet远程登陆配置
查看>>