大數(shù)據(jù)中如何不配置應(yīng)用名訪問應(yīng)用

這篇文章將為大家詳細(xì)講解有關(guān)大數(shù)據(jù)中如何不配置應(yīng)用名訪問應(yīng)用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

為班戈等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及班戈網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè)、班戈網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

如何不使用應(yīng)用名,直接通過虛擬主機(jī)的名稱或綁定的域名來訪問應(yīng)用呢?

進(jìn)行Web開發(fā)部署的人常會有以上的疑問。在進(jìn)行Web應(yīng)用發(fā)布時,經(jīng)常需要通過以下這種形式進(jìn)行應(yīng)用的請求。

虛擬主機(jī)+端口+ 應(yīng)用名

而如果我們配置了針對應(yīng)用的特定虛擬主機(jī),一個虛擬主機(jī)上只有這一個應(yīng)用,再通過應(yīng)用名訪問就沒什么必要,同時顯的繁瑣。

那在Tomcat中,怎么樣配置,以支持通過虛擬主機(jī)(端口如果是80,也可以跳過)直接訪問應(yīng)用呢?

官方文檔中,對于Context中應(yīng)用名稱這個屬性有這樣的描述:

大數(shù)據(jù)中如何不配置應(yīng)用名訪問應(yīng)用

我們看到,如果要為虛擬主機(jī)配置默認(rèn)的應(yīng)用,我們可以給context的path配置為空。這里注意一下,為空的意思,是指空串,而不是不指定。當(dāng)然,對于應(yīng)用名稱,我們在指定時一般是 /abc這種形式,所以為空時,也可以指定成 /這樣

所以,配置成以下兩種形式,都是OK的。

  • <Context path="" docBase="/home/abc/xxx"/>

  • <Context path="/" docBase="/home/abc/xxx"/>

當(dāng)然,除了以上這種配置外,將應(yīng)用的WAR包或者目錄命名為ROOT,也可以起到上面的作用。Tomcat在webapps目錄下自帶的ROOT應(yīng)用就是個例子。

我們來看Tomcat內(nèi)部,是如何處理的這些邏輯。

首先在Server啟動時,會涉及到應(yīng)用的部署,部署過程,可以參考前面的文章:

WEB應(yīng)用是怎樣進(jìn)行部署的

部署過程中,會根據(jù)具體的Context的配置,獲取對應(yīng)的應(yīng)用名稱,從而進(jìn)行應(yīng)用名稱的配置和注冊。

以下是部署前,解析配置的應(yīng)用名稱:

大數(shù)據(jù)中如何不配置應(yīng)用名訪問應(yīng)用

部署時,根據(jù)是在server.xml中配置部署還是在自動部署目錄中部署,處理情況不同:

在配置文件中配置的情況:

大數(shù)據(jù)中如何不配置應(yīng)用名訪問應(yīng)用

我們再看,在代表應(yīng)用名稱的類ContextName內(nèi),包含以下聲明:

public static final String ROOT_NAME= "ROOT";

同時,應(yīng)用部署,獲取具體Context名稱的時候,對應(yīng)的ContextName構(gòu)造函數(shù)里有下面的邏輯,

    public ContextName(String path, String version) {
        // Path should never be null, '/' or '/ROOT'
        if (path == null || "/".equals(path) || "/ROOT".equals(path)) {
            this.path = "";
        } else {
            this.path = path;
        }
同時,對于

我們發(fā)現(xiàn)對于ROOT應(yīng)用,在另一個構(gòu)造函數(shù)里,直接對應(yīng)到的請求路徑為空。

    if (ROOT_NAME.equals(tmp2)) {

            path = "";

     }

后續(xù)的Context注冊,就會用到這里的path。這里的注冊過程,可以參考前面的文章:

Tomcat多虛擬主機(jī)配置及原理

我們看到,注冊的過程中,如果有path為/的情況,也會自動轉(zhuǎn)化為空串。

大數(shù)據(jù)中如何不配置應(yīng)用名訪問應(yīng)用

沒有匹配到,就會匹配a的默認(rèn)值0,即第一個應(yīng)用。第一個應(yīng)用是什么呢?

就是我們配置的默認(rèn)應(yīng)用,path為空的那個。

例如下面是Tomcat自帶的幾個應(yīng)用的path,這是在mapper中注冊的情況。

所以,在配置到默認(rèn)的path為空的應(yīng)用后,就會用它進(jìn)行請求的后續(xù)響應(yīng)了。

關(guān)于大數(shù)據(jù)中如何不配置應(yīng)用名訪問應(yīng)用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

網(wǎng)站欄目:大數(shù)據(jù)中如何不配置應(yīng)用名訪問應(yīng)用
鏈接地址:http://muchs.cn/article8/ipghop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、電子商務(wù)網(wǎng)站導(dǎo)航、App設(shè)計網(wǎng)站收錄、移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計