激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 詳解servlet配置load-on-startup的作用

詳解servlet配置load-on-startup的作用

2021-01-10 11:48xuke6677 Java教程

本文對load-on-startup的相關內容作了詳細介紹,然后通過具體實例向大家展示了其作用,希望可以給大家一個參考。

servlet配置當中,<load-on-startup>1</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在startup后立即加載,但只是調用servlet的init()方法,用以初始化該servlet相關的資源。初始化成功后,該servlet可響應web請求;如未配置load-on-startup,容器一般在第一次響應web請求時,會先檢測該servlet是否初始化,如未初始化,則調用servlet的init()先初始化,初始化成功后,再響應請求。

PS:一般我們在開發web應用時,都會配置這個參數,有兩個好處:1、如果初始化過程失敗,則容器會提示啟動失敗,此時我們能夠提前知道相關錯誤;2、配置該參數相當于將初始化servlet的工作轉移到容器啟動過程,使得容器只要啟動成功后,就可立即響應web請求。

示例:判斷是否連接網絡

1、web.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://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">
 <servlet>
  <servlet-name>OfflineTest</servlet-name>
  <servlet-class>com.offline.OfflineTest</servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>
<!--如果頁面不請求, 可以注釋這段
 <servlet-mapping>
  <servlet-name>OfflineTest</servlet-name>
  <url-pattern>/OfflineTest</url-pattern>
 </servlet-mapping>
 -->
 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
</web-app>

2、Servlet

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package com.offline;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
/**
 * 判斷是否連接網絡
 * @author Coco
 *
 */
public class OfflineTest extends HttpServlet {
    private static final long serialVersionUID = 1194662230797153372L;
    public void init() throws ServletException {
        boolean bool = pingLink();
        // 取得Application對象
        ServletContext application = this.getServletContext();
        // 設置Application屬性
        application.setAttribute("bool", bool);
    }
    public boolean pingLink(){
        boolean bool = true;
        Runtime runtime = Runtime.getRuntime(); // 獲取當前程序的運行進對象
         Process process = null; // 聲明處理類對象
         String line = null; // 返回行信息
         InputStream is = null; // 輸入流
         InputStreamReader isr = null; // 字節流
         BufferedReader br = null;
         String ip = "www.baidu.com";
         boolean res = false;// 結果
         try {
          process = runtime.exec("ping " + ip); // PING
          is = process.getInputStream(); // 實例化輸入流
          isr = new InputStreamReader(is);// 把輸入流轉換成字節流
          br = new BufferedReader(isr);// 從字節中讀取文本
          while ((line = br.readLine()) != null) {
          if (line.contains("TTL")) {
           res = true;
           break;
          }
          }
          is.close();
          isr.close();
          br.close();
          if (res) {
//            Log.print("ping www.baidu.com通...已經連接外網");
          } else {
              bool = false;
//            Log.print("ping www.baidu.com不通...無法連接外網");
          }
         } catch (IOException e) {
//           Log.print(e.getMessage());
         }
         return bool;
    }
 
}

3、index.html

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <base href="<%=basePath%>" rel="external nofollow" >
  <title>判斷是否連接網絡</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0"
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
 </head>
 <body>
 <%=application.getAttribute("bool") %><br/>
 或者<%=getServletContext().getAttribute("bool") %><br/>
 實際應用中:比如有網絡就加載一個頁面 ,引用jquery
 <div id="share_plus"></div>
<script type="text/javascript">
var network = '<%=application.getAttribute("bool") %>';
if(network == true){
    $.get("/common/common_share.html",function(data){
     $("#share_plus").html(data);
    });
}
</script>
 </body>
</html>

本文關于詳解servlet配置load-on-startup的作用的介紹就到這里,希望對大家有所幫助。謝謝大家對本站的支持!

原文鏈接:http://blog.csdn.net/xuke6677/article/details/44752207

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 麻豆传传媒久久久爱 | 久久精品日产高清版的功能介绍 | 麻豆小视频在线观看 | 一区二区三区四区高清视频 | 亚洲电影免费观看高清完整版在线观 | 永久免费黄色片 | 精品国内视频 | 奇米888一区二区三区 | 欧美久久久一区二区三区 | 欧美一区二区三区久久精品视 | 72pao成人国产永久免费视频 | 国产毛片视频 | 中文字幕视频在线播放 | 一级大片一级一大片 | 日本在线看片 | 欧美一级片免费在线观看 | 9999视频| 在线播放污 | 成人在线免费观看小视频 | 成人在线免费观看视频 | 国产精品久久久久久影院8一贰佰 | 香蕉视频18 | 精品一区二区三区欧美 | 亚洲网站在线 | 国产自91精品一区二区 | 国产91丝袜在线播放 | 欧美三日本三级少妇三级99观看视频 | 欧产日产国产精品乱噜噜 | 欧美国产精品一区二区 | 国产伦精品一区二区三区在线 | 91系列在线观看 | avhd101高清在线迷片麻豆 | 免费黄色大片网站 | 福利在线免费 | 国产免费资源 | 国产精品岛国久久久久久 | 1314成人网 | 中文字幕在线观看91 | 深夜视频在线观看 | 久久久久久久久久美女 | 日韩在线欧美在线 |