最近写了一个公司网站,其中只有前端部分,还没有写java代码。在其中js部分有一些内容我觉的可以用配置项来代替,因为直接写到js代码里,有时候不太方便。

故想着使用java来实现一下,读取xml文件配置项的方式。

最简单的办法就是使用servlet, 即就是写一个servlet ,在容器已加载的时候就能读取到xml配置文件中的内容,然后我就写了一个非常非常简单的servlet,

package com.xljy.servlet;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;public class InitServlet extends HttpServlet {@Overridepublic void init() throws ServletException {System.out.println("进入InitServlet1");}
}

就这个servlet, ,然后再在web.xml 配置上servlet

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="qaservice" version="3.0"><display-name>edu_5ixl</display-name><servlet><servlet-name>InitServlet</servlet-name><servlet-class>com.xljy.servlet.InitServlet</servlet-class><!-- 
<load-on-startup>1</load-on-startup>
 --></servlet><servlet-mapping> <servlet-name>InitServlet</servlet-name> <url-pattern>/InitServlet</url-pattern></servlet-mapping><welcome-file-list> <welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>


这里没有写
<load-on-startup>1</load-on-startup>
 没有写这句,如果不访问InitServlet 的话 InitServlet 就不会执行的 ,故得写上 
<load-on-startup>1</load-on-startup>
得写上这句, 挡在tomcat一启动的时候,就会执行 InitServlet
我查了一下,web.xml中load-on-startup的作用

贴一段英文原汁原味的解释如下:
Servlet specification:
The load-on-startup element indicates that this servlet should be loaded (instantiated and have its init() called) on the startup of the web application.
The optional contents of these element must be an integer indicating the order in which the servlet should be loaded. If the value is a negative integer, or the element is not present, the container is free to load the servlet whenever it chooses.   If the
value is a positive integer or 0, the container must load and initialize the servlet as the application is deployed. The container must guarantee that servlets marked with lower integers are loaded before servlets marked with higher integers. The container
may choose the order of loading of servlets with the same load-on-start-up value.
翻译过来的意思大致如下:
1)load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。
2)它的值必须是一个整数,表示servlet应该被载入的顺序
2)当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;
3)当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。
4)正数的值越小,该servlet的优先级越高,应用启动时就越先加载。
5)当值相同时,容器就会自己选择顺序来加载。
所以,<load-on-startup>x</load-on-startup>,中x的取值1,2,3,4,5代表的是优先级,而非启动延迟时间。
这里感谢一下作者,我也是摘抄。

后来我又写了一个InitServlet2 ,如下:
package com.xljy.servlet;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;public class InitServlet2 extends HttpServlet {@Overridepublic void init() throws ServletException {System.out.println("进入InitServlet2");}
}

web.xml 中 配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="qaservice" version="3.0"><display-name>edu_5ixl</display-name><servlet><servlet-name>InitServlet</servlet-name><servlet-class>com.xljy.servlet.InitServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>InitServlet</servlet-name><url-pattern>/InitServlet</url-pattern></servlet-mapping><servlet><servlet-name>InitServlet2</servlet-name><servlet-class>com.xljy.servlet.InitServlet2</servlet-class><load-on-startup>2</load-on-startup></servlet><servlet-mapping><servlet-name>InitServlet2</servlet-name><url-pattern>/InitServlet2</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>

其中Initservlet和InitServlet2 都设置了自启动,那么哪个先启动呢? load-on-startup 的值越小,优先级越高 ,所以是InitServlet先启动。
这里仅此将此知识点记录一下。

不积跬步,无以至千里
不积小流,无以成江海

简单servlet第二篇--load-on-startup的用法相关推荐

  1. Servlet第二篇【Servlet调用图、Servlet细节、ServletConfig、ServletContext】

    Servlet的调用图 前面我们已经学过了Servlet的生命周期了,我们根据Servlet的生命周期画出Servlet的调用图加深理解 Servlet的细节 一个已经注册的Servlet可以被多次映 ...

  2. 第二篇:cout和endl的用法

    #include <iostream>//包含输入输出流 int main() { std::cout<<"五年级一班的数学成绩\n"; //  ::后面的 ...

  3. 深入理解Tomcat和Jetty源码之第二篇servlet规范和servlet容器

    深入理解Tomcat和Jetty源码之第二篇servlet规范和servlet容器 思维导图总览 这篇推送主要讲servlet的规范和什么是servlet容器? 1.先来讲讲servlet规范: 2. ...

  4. SpringCloud第二篇-Ribbon:

    Ribbon简介 Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起.Ribbon客户端组件提供一系列完善的配置项如连接超时,重 ...

  5. Django框架之第二篇

    Django框架之第二篇 一.知识点回顾 1.MTV模型 model:模型,和数据库相关的 template:模板,存放html文件,模板语法(目的是将变量如何巧妙的嵌入到HTML页面中). view ...

  6. java设计模式中不属于创建型模式_23种设计模式第二篇:java工厂模式定义:工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式...

    23种设计模式第二篇:java工厂模式 定义: 工厂模式是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 工厂模式主要是为创建对象提供过渡接口, ...

  7. 初学Python——文件操作第二篇

    前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...

  8. ASP.NET自定义控件组件开发 第一章 第二篇 接着待续

    ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 很感谢大家给我的第一篇ASP.NET控件开发的支持!在写这些之前,我也看了一些例 ...

  9. Android开源项目第二篇——工具库篇

    本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍经常使用的开发库,包含依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本号向低版本号 ...

最新文章

  1. 「日常训练」Common Subexpression Elimination(UVa-12219)
  2. 看完这些福利才知道,为什么说双12一定要出去浪
  3. [渝粤教育] 西北工业大学 博弈论基础 参考 资料
  4. 法语写信_为我们写信:我们最热门的19个主题
  5. jQuery的AJAX常用属性及解释
  6. win10家庭版无法安装mysql_Win10安装MySQL
  7. c 语言打印沙漏图形,PAT乙级 1027打印沙漏 [图形输出]
  8. SPI全双工模式下收发字节的理解
  9. android o壁纸,超实用壁纸应用大合集 - 你想要的壁纸在这里统统都能找到! - Android 应用 - 【最美应用】...
  10. SSR、SSE、SST、判定系数(可决系数、拟合优度)的计算公式
  11. 电商平台用户行为分析—Tableau
  12. 中国大学MOOC-陈越、何钦铭-数据结构-2020春期中考试
  13. 1157:哥德巴赫猜想
  14. 2015.7.8(千股跌停!做T不应当只做中色,中国软件)
  15. 惠州商贸旅游学校计算机网络,惠州商贸旅游高级职业技术学校
  16. boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.Output
  17. 最简便的lightGBM GPU支持的安装、验证方法
  18. 百度贴吧顶帖软件机器人
  19. 概率论与数理统计第一章 随机事件与概率 学习总结
  20. 红旗linux认证管理专家,linux认证:亲自感受红旗linux系统优化大全

热门文章

  1. GBASE 8s数据库监控
  2. 【重庆邮电大学】考研初试复试资料分享
  3. Spring moble 自定义Device接口
  4. matlab柯西主值积分,希尔伯特-黄变换基本概念
  5. 可以录制手机尺寸的录屏软件有哪些?
  6. 在线将视频转为Gif图上传到csdn与github上
  7. 怎么打开.torrent的种子文件
  8. 探索小程序开发:2023年的全面指南
  9. 会声会影年中低价来袭,618我们一起约惠一夏!
  10. 错过双11?别慌,会声会影返场大促来了