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中的作用有哪些