回顾servlet生命周期(代码测试),读取初始化参数
servlet生命周期
为简洁,本例使用注解方式来测试,代码部分很简单,只需要新建一个serlet,继承自HttpServlet,重写init,doGet,doPost,destory方法即可,使用注解@WebServlet注解分别测试存在loadOnStartup 和不存在loadOnStartup情况
package com.demo; import java.io.IOException; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; @WebServlet(value = "/my", loadOnStartup = 0)
public class MyServlet extends HttpServlet { public MyServlet() {
System.out.println("create");
} @Override
public void init() throws ServletException {
System.out.println("init");
} @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("service");
} @Override
public void destroy() {
System.out.println("destory");
} }
一、当配置有loadOnStartup且值大于等于0时,web服务器启动即会创建和初始化该servlet,且loadOnStartup数值越小,越优先执行,后续每次访问该servlet,将会调用一次service服务(doGet/doPost),关闭web服务,调用destory方法,销毁servlet
二、当未配置loadOnStartup时,web服务器启动时不会初始化该servlet,当第一次访问该servlet时,才会进行创建并初始化,后续每次访问该servlet,都将会调用一次service服务(doGet/doPost),关闭web服务,调用destory方法,销毁servlet。
三、servlet中init和destory方法每次都执行一次,servlet为单实例,但并没有使用单例模式
获取初始化参数
在注解@WebServlet中可添加初始化参数initParams
@WebServlet(value = "/my", loadOnStartup = 0, initParams = {
@WebInitParam(name = "name", value = "val", description = "desc"),
@WebInitParam(name = "init", value = "initValue") })
public class MyServlet extends HttpServlet {
......
}
servlet提供了一些方法来处理初始化参数,这些方法被定义到接口ServletConfig中,

可通过getInitParameter(String)获取具体某个参数的值,也可以通过遍历来获取所有初始化参数的值
@Override
public void init() throws ServletException {
System.out.println("init");
Enumeration<String> initParameterNames = this.getInitParameterNames(); while (initParameterNames.hasMoreElements()) {
String nextElement = initParameterNames.nextElement();
System.out.println(this.getInitParameter(nextElement));
} }
回顾servlet生命周期(代码测试),读取初始化参数的更多相关文章
- javaWeb中servlet开发(3)——Servlet生命周期
生命周期:是一个程序的存在周期,servlet由于是受容器的管理,所以容器来决定其生命周期 1.servlet生命周期 2.servlet生命周期对应的方法 3.servlet生命周期代码 publi ...
- 测试Servlet生命周期学习笔记
测试环境:windows xp旗舰版 软件环境:myclipse8.5+tomcat7.0 ****************************************************** ...
- JavaWeb知识回顾-servlet生命周期。
Servlet生命周期 生命周期,很容易理解,拿人来说,就是你从出生到离开的这一过程.无论是什么技术,只要谈到生命周期都可以这样理解. Servlet的生命周期就是从它被创建到毁灭的过程,整个过程可以 ...
- 测试Servlet生命周期例子程序
写一个类TestLifeCycleServlet,生成构造器TestLifeCycleServlet();重写HttpServlet的doGet();重写GenericServlet的destroy( ...
- Servlet 生命周期、工作原理
按照单例的编码规则,Servlet本身只是一个Java,结构并不是单例结构. 只是Web容器在维护这些Servlet的时候只给创建一个实例存在JVM中,用户请求服务时,服务器只调用它已经实例化好的Se ...
- Web---演示servlet技术(servlet生命周期),解决中文乱码问题
本节讲解决中文乱码问题的4种方法. 还有更好的方法,也就是用过滤器,这里就不演示了,博主目前也不会~呼♪(^∇^*)~过段时间才会学. servlet生命周期演示: index.jsp: <%@ ...
- Servlet底层原理、Servlet实现方式、Servlet生命周期
Servlet简介 Servlet定义 Servlet是一个Java应用程序,运行在服务器端,用来处理客户端请求并作出响应的程序. Servlet的特点 (1)Servlet对像,由Servlet容器 ...
- JaveWeb学习之Servlet(一):Servlet生命周期和加载机制
原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2018-07-22/19.html 作者:夜月归途 出处:http://www.guitu ...
- 【Servlet】(1)Servlet简介、Servlet底层原理、Servlet实现方式、Servlet生命周期
一.Servlet简介 1.Servlet定义: Servlet(Server Applet)是Java Servlet的简称,是为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交 ...
随机推荐
- 【ASP.NET Core快速入门】(十)Cookie-based认证实现
准备工作 新建MVC项目,然后用VSCode打开 dotnet new mvc --name MvcCookieAuthSample 在Controllers文件夹下新建AdminController ...
- 【ASP.NET Core快速入门】(六)配置的热更新、配置的框架设计
配置的热更新 什么是热更新:一般来说,我们创建的项目都无法做到热更新:即项目无需重启,修改配置文件后读取到的信息就是修改配置之后的 我们只需要吧项目中用到的IOptions改成IOptionsSnap ...
- springboot+mybatis+dubbo+aop日志第三篇
AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等等. Spring AOP模块提供截取拦截应用程序的拦截器,例如,当执行方法时,可以在执行方法之前或之后添加 ...
- Vim 下的复制/粘贴/剪切/撤销
一 了解 vim 有 12 个粘贴板,分别是 0.1.2.....9.a.“.+:用 :reg 命令可以查看各个粘贴板里的内容.在 vim 中简单用 y 命令只是复制到 "(双引号)粘贴板里 ...
- protobuf、LRU、sigleflight
今天咱一次讲3个吧,赶一下进度,好早点开始聊kubernetes! 从groupcache的项目目录结构看,我们今天要学习groupcachepb.lru.singleflight这3个package ...
- 设计模式总结篇系列:建造者模式(Builder)
关于建造者模式网上有很多文章,也有些不同的理解.在此结合网上其他文章对建造者模式进行总结. 总体说来,建造者模式适合于一个具有较多的零件(属性)的产品(对象)的创建过程.根据产品创建过程中零件的构造是 ...
- 日志模块logging用法
一.常用日志记录场景及最佳解决方案: 日志记录方式 最佳记录日志方案 普通情况下,在控制台显示输出 print() 报告正常程序操作过程中发生的事件 logging.info()(或者更详细的logg ...
- .Net语言 APP开发平台——Smobiler学习日志:HoverBackColor属性的简单介绍
一.属性介绍 设置按钮按下时的背景色,默认设置为“Gray” 二.举例介绍 以Button控件为例 mobiler窗体设计界面见图1 将该属性设置为“255, 255, 128”,表示RGB颜色,属性 ...
- asp.net MVC NPOI导出excel通用
一.创建一个类文件添加 public class ExportToExcelColumn { public ExportToExcelColumn(string _Columnnames, strin ...
- Linux学习笔记之MySql的安装(CentOS)
一.移除mariadb 由于CentOS默认安装了mariadb,所以在安装MySql之前先移除mariadb,使用命令:yum remove mariadb-libs.x86_64,如下图所示: 二 ...