load-on-startup在servlet中的作用有哪些

  介绍

load-on-startup在servlet中的作用有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

在servlet的配置当中,& lt; load-on-startup> 1 & lt;/load-on-startup>的含义是:标记容器是否在启动的时候就加载这个servlet。

当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。

正数的值越小,启动该servlet的优先级越高。

,如果我们在web . xml中设置了多个servlet的时候,可以使用load-on-startup来指定servlet的加载顺序,服务器会根据load-on-startup的大小依次对servlet进行初始化。不过即使我们将load-on-startup设置重复也不会出现异常,服务器会自己决定初始化顺序。

配置load-on-startup后,servlet在启动后立即加载,但只是调用servlet的init()方法,用以初始化该servlet相关的资源。初始化成功后,该servlet可响应网络请求;如未配置load-on-startup,容器一般在第一次响应网络请求时,会先检测该servlet是否初始化,如未初始化,则调用servlet的init()先初始化,初始化成功后,再响应请求。

<强> p :一般我们在开发网络应用时,都会配置这个参数,有两个好处:1,如果初始化过程失败,则容器会提示启动失败,此时我们能够提前知道相关错误;2,配置该参数相当于将初始化servlet的工作转移到容器启动过程,使得容器只要启动成功后,就可立即响应网络请求。

<强>示例:判断是否连接网络

1,网络。xml

& lt;及# 63;xml version=?.0”;编码=癠TF-8", # 63;比;=& lt; web版本“2.5”;   xmlns=癶ttp://java.sun.com/xml/ns/javaee"   xmlns: xsi=癶ttp://www.w3.org/2001/XMLSchema-instance"   xsi: schemaLocation=? http://java.sun.com/xml/ns/javaee   ,http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"的在   & lt; servlet>   & lt; servlet-name> OfflineTest   & lt; servlet-class> com.offline.OfflineTest   & lt; load-on-startup> 1 & lt;/load-on-startup>   & lt;/servlet>   & lt; !——如果页面不请求,可以注释这段   & lt; servlet-mapping>   & lt; servlet-name> OfflineTest   & lt; url-pattern>/OfflineTest   & lt;/servlet-mapping>   ——比;   & lt; welcome-file-list>   & lt; welcome-file> index.jsp   & lt;/welcome-file-list>   & lt;/web-app>

2, Servlet

包com.offline;
  进口java.io.BufferedReader;
  进口java.io.IOException;
  进口java.io.InputStream;
  进口java.io.InputStreamReader;
  进口javax.servlet.ServletContext;
  进口javax.servlet.ServletException;
  进口javax.servlet.http.HttpServlet;/* *
  *判断是否连接网络
  * @author可可
  *
  */公开课OfflineTest扩展HttpServlet {
  私有静态最终长serialVersionUID=1194662230797153372 l;
  公共空间init()抛出ServletException {
  布尔bool=pingLink ();//取得应用程序对象
  ServletContext应用=this.getServletContext ();//设置应用属性
  application.setAttribute (“bool" bool);
  }
  公共布尔pingLink () {
  布尔bool=true;
  运行时的运行时=Runtime.getRuntime ();//获取当前程序的运行进对象
  过程过程=零;//声明处理类对象
  字符串行=零;//返回行信息
  InputStream是=零;//输入流
  InputStreamReader isr=零;//字节流
  BufferedReader br=零;
  字符串ip=皐ww.baidu.com";
  布尔res=false;//结果
  尝试{
  过程=runtime.exec(“平”;+ ip);//平
  是=process.getInputStream ();//实例化输入流
  isr=new InputStreamReader(是);//把输入流转换成字节流
  br=new BufferedReader (isr);//从字节中读取文本
  在((=br.readLine行())!=null) {
  如果(line.contains (“TTL")) {
  res=true;
  打破;
  }
  }
  is.close ();
  isr.close ();
  br.close ();
  如果(res) {//log.print (“ping www.baidu.com通…已经连接外网“);
  其他}{
  bool=false;//log.print (“ping www.baidu.com不通…无法连接外网“);
  }
  }捕捉(IOException e) {//log.print (e.getMessage ());
  }
  返回布尔值;
  }
  
  }

3,指数。html

& lt; % @页面语言=癹ava"进口=癹ava.util。*”;pageEncoding=癠TF-8" %比;   & lt; %   字符串路径=request.getContextPath ();   字符串basePath=request.getScheme () +“://? request.getServerName () +“:“+ request.getServerPort() +路径“/?   %比;   & lt; !DOCTYPE HTML公众“-//W3C//DTD HTML 4.01过渡//EN"比;   & lt; html>   & lt; head>   href=https://www.yisu.com/zixun/& lt;基地”“rel="外部nofollow”>   

load-on-startup在servlet中的作用有哪些