Servlet的创建二以及生命周期
之前说Servlet可以通过实现Servlet接口来创建,但是我们看到了,需要重写该接口中的所有方法。
创建方式二:Servlet的创建还可以继承抽象类GenericServlet并重写其中的抽象方法
创建方法三:继承HttpServlet类,并重写他的Service方法
这几种创建方法的本质是一样的,不过是父类的范围越来越小,越来越专用。使用的过程中不必纠结这点。第三种方式更加推荐,并且可以将Service分开为doGet,doPost两个方法处理请求。
Servlet生命周期
1.客户端浏览器向服务器端发送请求URL
2.请求被服务器中的web.xml获取,并开始找寻对应的访问资源是哪一个Servlet
3.需要被访问的资源被确定后,服务器的类加载器加载Servlet类
4.创建Servlet对象
5.初始化
6.调用doGet,doPost,service其中的某个方法来处理请求并进行响应
7.当服务器关闭,重启,项目重新部署或加载的时候,就调用他的destroy方法销毁
需要注意的是,Servlet的生命周期是冲被加载开始算起的,之前的是请求的过程,我穿插进来比较容易理解。然后Servlet第一次被访问的时候,会被加载,创建,初始化,处理请求并响应。如果不是第一次被访问,只进行请求处理响应。在服务器关闭,项目被加载的时候Servlet销毁。
一个Servlet的生命周期中,Servlet对象只有一个,并且不同的客户端公用这一个Servlet对象,比如说,我们用IE浏览器访问了一个servlet,退出IE再用火狐访问这个servlet,他们用的其实是同一个Servlet。这就牵扯到了单例模式,下次再介绍,不是本文重点。
话不多说,上实例。
【继承HttpServlet类的Servlet】
package com.servlettest;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Servlet3 extends HttpServlet{
public Servlet3() {
// TODO Auto-generated constructor stub
System.out.println("被创建");
}
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("处理请求");
}
@Override
public void destroy() {
// TODO Auto-generated method stub
System.out.println("销毁");
}
@Override
public void init() throws ServletException {
// TODO Auto-generated method stub
System.out.println("初始化");
}
}
【地址栏输入】
http://localhost:8080/servlet_demo/servlet3
【现象】
console打印
被创建
初始化
处理请求
【再次刷新】
处理请求
处理请求
处理请求
处理请求
【关闭服务器】
销毁
Servlet的创建二以及生命周期的更多相关文章
- MVVM框架(二)---生命周期
一.Vue 生命周期图解: 这张图是官方给出的,大家可能都看过.其中我们重点讲述以下几个钩子函数: beforeCreate --> created beforeMount --> ...
- [转]servlet的执行原理与生命周期
一.先从servlet容器说起:大家最为熟悉的servlet容器就是Tomcat ,Servlet 容器是如何管理 Servlet? 先看一下tomcat的容器模型: 从上图可以看出 Tomcat 的 ...
- .net学习笔记---Asp.net的生命周期之二页生命周期
用户请求 从 用户角度来说,我不管你后台经历了什么,我只想要我请求的页面.请求到服务器端,服务器必须得有所表示的是吧,即使不想搭理人家也得让IIS给人家说声:找不到服务器.请求来到服务器端,肯定要让服 ...
- Activity学习(二)——生命周期
一.什么是Activity? 简单的说:Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面.在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Ac ...
- servlet的执行原理与生命周期
先从servlet容器说起:大家最为熟悉的servlet容器就是Tomcat ,Servlet 容器是如何管理 Servlet?先看一下tomcat的容器模型:从上图可以看出 Tomcat 的容器分为 ...
- Servlet(三):生命周期、常用方法、常见错误
Servlet的生命周期:从第一次调用,到服务器关闭.如果在web.xml 中配置了load-on-startup则是从服务器开启到服务器关闭. 注意: * init方法是对Servlet进行初始化的 ...
- JSP 和 Servlet 的工作原理和生命周期
JSP的英文名叫Java Server Pages,翻译为中文是Java服务器页面的意思,其底层就是一个简化的Servlet设计,是由sum公司主导参与建立的一种动态网页技术标准.Servlet 就是 ...
- Django项目的创建与介绍.应用的创建与介绍.启动项目.pycharm创建启动项目.生命周期.三件套.静态文件.请求及数据.配置Mysql完成数据迁移.单表ORM记录的增删改查
一.Django项目的创建与介绍 ''' 安装Django #在cmd中输入pip3 #出现这个错误Fatal error in launcher: Unable to create process ...
- [javaEE] Servlet的调用过程和生命周期
在http协议的请求头中获取到要访问的资源,查找web.xml文件找到对应的servelet Sevlet的生命周期 Servlet在第一次被访问的时候,服务器创建出Servlet对象,创建出对象以后 ...
随机推荐
- 每日笔记-redis的理解及相关应用
原文链接:常见面试题 本文大纲与之类似,在其基础上加入了自己在实际项目中对部分知识点的理解 Q1:谈谈对redis的理解 Q2:谈谈实际应用中怎么用redis的 2.1 缓存 2.2 分布式锁 2.3 ...
- 将对象序列化成XML字符串
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- 使用hadoop平台运行Apriori算法
https://blog.csdn.net/laotumingke/article/details/66973260 https://blog.csdn.net/qq_24369113/article ...
- wpf改变网格字体颜色
1.创建个转换器 public class ColorConvertor : IValueConverter { public object Convert(object value, Type ta ...
- 985. Sum of Even Numbers After Queries
We have an array A of integers, and an array queries of queries. For the i-th query val = queries[i] ...
- 如何修复“网络路径”,错误代码0x80070035
1.以管理员权限 运行 cmd. sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi回车sc.exe config mrxsmb20 ...
- 记一次git翻车事件
昨天dmp上线了 本来整个流程是 1.在本地1.4分支开发,开发完成push到origin/1.4,在远程仓库把1.4 merge到master分支 2.本地online分支先pull一下远程onli ...
- find用法详解
一.find的用法 find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [express ...
- Swift Realm 完整使用记录
新项目用到了数据库,本来之前用的都是 SQL,但是语法写的实在是恶心,所以使用 Realm 尝试一下. 1.我使用的 pod 库,所以先 pod 库安装一下,安装完别忘了先编译一下,不然 import ...
- Gulp入门及简单使用
前言 什么是gulp?gulp有什么用?为什么用gulp? gulp是前端开发的一种构建工具. 构建工具可以帮助我们工程化地开发项目,比如搭建本地服务器.编译CSS预处理器.保存文件后自动刷新浏览器而 ...