一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

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

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

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

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

servlet配置當(dāng)中,<load-on-startup>1</load-on-startup>的含義是:標(biāo)記容器是否在啟動的時候就加載這個servlet。

當(dāng)值為0或者大于0時,表示容器在應(yīng)用啟動時就加載這個servlet;當(dāng)是一個負(fù)數(shù)時或者沒有指定時,則指示容器在該servlet被選擇時才加載。

正數(shù)的值越小,啟動該servlet的優(yōu)先級越高。

 如果我們在web.xml中設(shè)置了多個servlet的時候,可以使用load-on-startup來指定servlet的加載順序,服務(wù)器會根據(jù)load-on-startup的大小依次對servlet進行初始化。不過即使我們將load-on-startup設(shè)置重復(fù)也不會出現(xiàn)異常,服務(wù)器會自己決定初始化順序。

配置load-on-startup后,servlet在startup后立即加載,但只是調(diào)用servlet的init()方法,用以初始化該servlet相關(guān)的資源。初始化成功后,該servlet可響應(yīng)web請求;如未配置load-on-startup,容器一般在第一次響應(yīng)web請求時,會先檢測該servlet是否初始化,如未初始化,則調(diào)用servlet的init()先初始化,初始化成功后,再響應(yīng)請求。

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

示例:判斷是否連接網(wǎng)絡(luò)

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;
/**
 * 判斷是否連接網(wǎng)絡(luò)
 * @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();
        // 設(shè)置Application屬性
        application.setAttribute("bool", bool);
    }
    public boolean pingLink(){
        boolean bool = true;
        Runtime runtime = Runtime.getRuntime(); // 獲取當(dāng)前程序的運行進對象
         Process process = null; // 聲明處理類對象
         String line = null; // 返回行信息
         InputStream is = null; // 輸入流
         InputStreamReader isr = null; // 字節(jié)流
         BufferedReader br = null;
         String ip = "www.baidu.com";
         boolean res = false;// 結(jié)果
         try {
          process = runtime.exec("ping " + ip); // PING
          is = process.getInputStream(); // 實例化輸入流
          isr = new InputStreamReader(is);// 把輸入流轉(zhuǎn)換成字節(jié)流
          br = new BufferedReader(isr);// 從字節(jié)中讀取文本
          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通...已經(jīng)連接外網(wǎng)");
          } else {
              bool = false;
//            Log.print("ping www.baidu.com不通...無法連接外網(wǎng)");
          }
         } 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>判斷是否連接網(wǎng)絡(luò)</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/>
 實際應(yīng)用中:比如有網(wǎng)絡(luò)就加載一個頁面 ,引用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>

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品亚洲综合在线第一区 | 午夜精品免费 | 色哟哟哟在线精品观看视频 | 国产亚洲精品美女 | 四虎在线成人免费网站 | 三级无删减高清在线影院 | 国产精品久久久久久久久久久久 | 美女露全身永久免费网站 | 男男互操文 | 成年人免费观看的视频 | 亚洲高清国产拍精品动图 | 欧美日韩精品一区二区三区高清视频 | 91青青视频| 日本免费全黄一级裸片视频 | 激情小说欧美图片 | 爱爱亚洲 | 黑人巨鞭大战白妞10级 | 色综七七久久成人影 | 麻豆资源 | 大肚孕妇的高h辣文 | 邪恶肉肉全彩色无遮琉璃神社 | 深夜福利在线播放 | 美女扒开屁股让我桶免费 | 亚洲精品青青草原avav久久qv | 99久久www免费 | 国产成人免费高清激情视频 | 性色AV乱码一区二区三区视频 | 网站久久| 欧美成人另类人妖 | 色婷婷久久综合中文久久一本` | 天美蜜桃精东乌鸦传媒 | 高h孕交 | 亚洲日本免费 | 亚洲一区二区三区免费视频 | youzljzljzljzlj96 | 亚洲成年www| 日韩性公交车上xxhd免费 | www.99精品视频在线播放 | 国产午夜大片 | 羞羞色男人的天堂伊人久久 | 色播开心网 |