Tomcat虛擬目錄和虛擬主機的配置

web應用程序

web應用程序指供瀏覽器訪問的程序,通常也簡稱爲web應用。
web應用:例如有a.html 、b.html…..多個web資源,這多個web資源用於對外提供郵件服務,此時應把這多個web資源放在一個目錄中,以組成一個web應用(或web應用程序)。
一個web應用由多個靜態web資源和動態web資源組成,如

  • html、css、js文件
  • jsp文件、java程序、支持jar包
  • 配置文件

組成web應用的這些文件通常我們會使用一個目錄組織,這個目錄稱之爲web應用所在目錄

Tomcat服務器虛擬目錄的映射方式

web應用開發好後,若想供外界訪問,需要把web應用所在目錄交給web服務器管理,這個過程稱之爲虛似目錄的映射。那麼在Tomcat服務器中,如何進行虛擬目錄的映射呢?總共有如下的幾種方式:

虛擬目錄的映射方式一:在server.xml文件的host元素中配置

找到server.xml文件的host元素,如下:

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

<Host></Host>這對標籤加上<Context path="/JavaWebApp" docBase="c:\mail" />,即可將在c盤下的mail這個JavaWeb應用映射到JavaWebApp這個虛擬目錄上,JavaWebApp這個虛擬目錄是由Tomcat服務器管理的,JavaWebApp是一個硬盤上不存在的目錄,是我們自己隨便寫的一個目錄,也就是虛擬的一個目錄,所以稱之爲”虛擬目錄”,代碼如下:

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

        <Context path="/JavaWebApp" docBase="c:\mail" />

      </Host>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

其中,Context表示上下文,代表的就是一個JavaWeb應用,Context元素有兩個屬性:

  • path:用來配置虛擬目錄,必須以”/”開頭。
  • docBase:配置此虛擬目錄對應着硬盤上的Web應用所在目錄。

使用瀏覽器訪問”/JavaWebApp”這個虛擬目錄下的1.html這個web資源,訪問結果如下:
這裏寫圖片描述
1.html可以正常訪問,這說明我們已經成功地將在c盤下的mail這個JavaWeb應用映射到JavaWebApp這個虛擬目錄上了,訪問”/JavaWebApp/1.html”就相當於訪問”c:\mail\1.html”。
注意:在Tomcat6之後中,不再建議在server.xml文件中使用配置context元素的方式來添加虛擬目錄的映射,因爲每次修改server.xml文件後,Tomcat服務器就必須要重新啓動後才能重新加載server.xml文件。在Tomcat服務器的文檔http://localhost:8080/docs/config/context.html#Defining_a_context中有這樣的說明:

It is NOT recommended to place <Context> elements directly in the server.xml file. This is because it makes modifying the Context configuration more invasive since the main conf/server.xml file cannot be reloaded without restarting Tomcat.

藉助有道翻譯爲:

不建議直接在server.xml文件中放置<Context>元素。這是因爲修改Context配置會帶來更多的攻擊性,因爲若不重啓Tomcat,主要的conf/server.xml文件不能被重新加載。

除了第一句話,翻譯的真是狗屁不通。

虛擬目錄的映射方式二:讓tomcat服務器自動映射

tomcat服務器會自動管理webapps目錄下的所有web應用,並把它映射成虛擬目錄。換句話說,tomcat服務器webapps目錄中的web應用,外界可以直接訪問。
例如:把c盤下的mail這個JavaWeb應用直接copy到tomcat服務器webapps目錄中,如下圖所示:
這裏寫圖片描述
此時Tomcat服務器就會自動爲mail這個JavaWeb應用映射成一個同名的虛擬目錄”/mail”,然後就可以使用瀏覽器訪問這個JavaWeb應用的資源了,如下圖所示:
這裏寫圖片描述

虛擬目錄的映射方式三

參考Tomcat服務器文檔:
這裏寫圖片描述
我們主要關注下面這幾句話:

In the $CATALINA_BASE/conf/context.xml file: the Context element information will be loaded by all web applications.

解釋:$CATALINA_BASE指的就是tomcat服務器根目錄。以上這句話的意思是說——在conf/context.xml文件中,Context元素信息被所有的web應用加載。即Context元素的配置信息會被所有web應用程序所共享。這不是我們所要的!!!

In the $CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default file: the Context element information will be loaded by all web applications of that host.

解釋:[enginename]指的是Tomcat服務器使用的引擎名稱,Tomcat使用的引擎是Catalina;[hostname]指的是主機名。以上這句話的意思是說——在conf/Catalina/localhost/context.xml.default文件(沒有就新建)中,Context元素信息將被這臺主機上的所有web應用加載。同理,這也不是我們所想要的!!!

In individual files (with a “.xml” extension) in the $CATALINA_BASE/conf/[enginename]/[hostname]/ directory. The context path and version will be derived from the base name of the file (the file name less the .xml extension). This file will always take precedence over any context.xml file packaged in the web application’s META-INF directory.

解釋:在tomcat服務器的/conf/Catalina/localhost目錄下添加一個以xml作爲擴展名的文件,xml文件的名字可以任意取,比如下面的aa.xml,注意這一句話”The context path and version will be derived from the base name of the file“,這一句話的意思翻譯過來就是”context元素的path屬性源自於這個xml文件的名字”,上面提到過,Context元素的path屬性是用來配置虛擬目錄的名稱的,所以虛擬目錄的名稱就是這個xml文件的名稱。
這裏寫圖片描述
在aa.xml文件中添加Context元素映射JavaWeb應用,代碼如下:

<Context docBase="c:\mail" />
  • 1

注意:在Context元素中並沒有指明path屬性來設置虛擬目錄的名稱,那麼”c:\mail”映射的虛擬目錄名稱是神馬呢,就是當前正在編輯的這個xml文件的名稱aa。
這裏寫圖片描述
使用這種方式映射虛擬目錄的最大好處是修改了配置文件後不用重啓Tomcat服務器,比如再複製一份aa.xml文件並重名爲bb.xml文件。
這裏寫圖片描述
此時有多條context path映射到JavaWeb應用。
這裏寫圖片描述
注意:

  • 在tomcat服務器的/conf/Catalina/localhost目錄下添加的xml文件的名字還可以是這樣的,如“aa#bb#cc.xml”:
    這裏寫圖片描述
    這時,可通過多級目錄來訪問,如:
    這裏寫圖片描述
  • 在tomcat服務器的/conf/Catalina/localhost目錄下添加的xml文件的名字還可以是這樣的,如“ROOT.xml”:
    這裏寫圖片描述
    此時默認的web應用就是c:\mail。當創建“ROOT.xml”文件後,需要重啓tomcat服務器,因爲要覆蓋掉原來的默認web應用。需要重啓tomcat服務器,就可這樣訪問了:
    這裏寫圖片描述
    除了這種方法之外,還可在server.xml文件中配置:

    <Context path="" docBase="C:\mail" />
    • 1

    只不過每次修改server.xml文件後,Tomcat服務器就必須要重新啓動後才能重新加載server.xml文件。

WEB應用的組成結構

開發web應用時,不同類型的文件有嚴格的存放規則,否則不僅可能會使web應用無法訪問,還會導致web服務器啓動報錯。
這裏寫圖片描述
web應用中,web.xml文件是其中最重要的一個文件,它用於對web應用中的web資源進行配置。

  • WebRoot→Web應用所在目錄,一般情況下虛擬目錄要配置到此文件夾當中,不是很明白這句話的意思。
    • WEB-INF→此文件夾必須位於WebRoot文件夾裏面,而且必須以這樣的形式去命名,字母都要大寫。
    • web.xml→配置文件,有格式要求,此文件必須以這樣的形式去命名,並且必須放置到WEB-INF文件夾中。

web.xml文件

通過web.xml文件,可以將web應用中的:

  • 某個web資源配置爲網站首頁。
  • 將servlet程序映射到某個url地址上。
  • ……
  • 但凡涉及到對web資源進行配置,都需要通過web.xml文件。

web.xml的格式可以直接從Tomcat中參考得到:找到Tomcat目錄下的webapps\ROOT\WEB-INF這個目錄下的web.xml文件,把這個文件拷貝到我們新建的WEB-INF文件夾中,並修改這個web.xml文件,把裏面的註釋刪除掉,只留下如下所示的代碼即可:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1">

    <!-- 通過web.xml文件配置網站首頁爲1.html -->
    <welcome-file-list>
        <welcome-file>1.html</welcome-file>
    </welcome-file-list>

</web-app>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

Tomcat服務器配置虛似主機

配置虛擬主機

配置虛似主機就是配置一個網站。
Tomcat服務器配置一個虛擬主機(網站),需要修改conf文件夾下的server.xml這個配置文件,使用Host元素進行配置,打開server.xml,可以看到Tomcat服務器自帶的一個名稱爲localhost的虛擬主機(網站)。

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

平時我們將開發好的JavaWeb應用放到webapps文件夾下,然後就可以使用http://localhost:端口號/JavaWebAppName的方式去訪問了,其實訪問的就是name是”localhost”的那臺虛擬主機(Host),這臺虛擬主機管理webapps文件夾下的所有web應用。
例如:http://localhost:8080/mail/1.html,這個URL地址訪問的就是名稱是localhost的那臺虛擬主機下的mail這個應用裏面的1.htm這個web資源。
我們可以使用如下的方式配置一個虛擬主機,例如:

<Host name="www.sina.com.cn" appBase="C:\sian">      
    <Context path="/mail" docBase="c:\sina\mail" />
</Host>
  • 1
  • 2
  • 3

這裏我們新配置一個虛擬主機,虛擬主機的name是”www.sina.com.cn”,虛擬主機”www.sina.com.cn”現在管理着sina文件夾下的所有web應用,平時我們在互聯網上使用域名”www.baidu.com”訪問百度的網站時,其實就是在訪問一個名稱是”www.baidu.com”的虛擬主機,所以當我們要訪問name是”www.sina.com.cn”的這個虛擬主機時,就可以使用”域名(www.sina.com.cn)”去訪問,注意一下appBase=”C:\sian”,這裏的sina文件夾代表的不是一個項目的根目錄,而是一個存放了一個或者多個JavaWeb應用的文件夾,如下圖所示:
這裏寫圖片描述
這就好像是Tomcat服務器的webapps文件夾一樣,裏面存放了很多的JavaWeb應用。
這裏寫圖片描述

windows系統中註冊域名

配置的主機(網站)要想通過域名被外部訪問,必須在DNS服務器或windows系統中註冊訪問網站時使用的域名,找到”C:\Windows\System32\drivers\etc“目錄下的hosts文件,如下圖所示:
這裏寫圖片描述
編輯這個文件,將新添加的網站的域名和IP地址綁定在一起,這樣我們就可以在瀏覽器中使用www.sina.com.cn這個域名去訪問name是www.sina.com.cn那個虛擬主機裏面管理的那些web應用了。

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
    127.0.0.1       localhost
    127.0.0.1       www.sina.com.cn
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

將設置的網站的域名www.sina.com.cn和本機的IP地址綁定在一起。
使用瀏覽器通過域名”www.sina.com.cn”訪問”www.sina.com.cn”這個虛擬主機下的mail這個web應用下的1.html這個web資源。將Tomcat服務器的默認端口號8080修改爲80,然後通過此端口去訪問mail這個web應用下的1.html這個web資源。
這裏寫圖片描述
一臺主機還可配置多個網站。首先在conf/server.xml中添加如下代碼:

<Host name="www.sina.com.cn"  appBase="c:\sina">
        <Context path="/mail" docBase="c:\sina\mail" />
</Host>

<Host name="www.google.com"  appBase="c:\google">
        <Context path="" docBase="c:\google\mail" /> <!-- 缺省虛擬主機 -->
</Host>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

接着編輯C:\Windows\System32\drivers\etc目錄下的文件hosts

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
    127.0.0.1       localhost
    127.0.0.1       www.sina.com.cn
    127.0.0.1       www.google.com
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

並將1.html的web資源設置爲c:\google\mail下mail這個web應用的首頁,怎麼設置,可以查看上面的筆記,在此不贅述了。
最後通過瀏覽器去訪問mail這個web應用下的1.html這個web資源。
這裏寫圖片描述

瀏覽器與服務器交互的過程

圖演示web資源的訪問過程
這裏寫圖片描述

打包JavaWeb應用

在Java中,使用”jar”命令來將JavaWeb應用打包成一個war包,jar命令的用法如下:
這裏寫圖片描述
例:將C:\google目錄下news這個JavaWeb應用打包成war包。
這裏寫圖片描述
執行完之後,就可以得到一個news.war文件,平時開發完JavaWeb應用後,一般都會將JavaWeb應用打包成一個war包,然後將這個war包放到Tomcat服務器的webapps目錄下,當Tomcat服務器啓動時,就會自動將webapps目錄下的war包解壓。
比如現在將news.war放到Tomcat服務器的webapps目錄下。
這裏寫圖片描述
Tomcat服務器啓動後會自動”Deploying web application”,將news.war這個war文件解壓縮,如下圖所示:
這裏寫圖片描述

context元素常用屬性

屬性 描述
docBase 指定web應用程序的文檔基目錄或者WAR文件的路徑。可以指定目錄的或WAR文件的絕對路徑名,也可以指定相對於Host元素的appBase目錄的路徑名。該屬性是必須的
path 指定web應用程序的上下文路徑。在一個特定的虛擬主機中,所有的上下文路徑都必須是唯一的。如果指定一個上下文路徑爲空字符串(“”),則定義了這個虛擬主機的默認web應用程序,負責處理所有的沒有分配給其他web應用程序的請求
reloadable 如果設置爲true,Tomcat服務器在運行時,會監視WEB-INF/classes和WEB-INF/lib目錄下類的改變,如果發現有類被更新,Tomcat服務器將自動重新加載該web應用程序。這個特性在應用程序的開發階段非常有用,但是它需要額外的運行時開銷,所以在產品發佈時不建議使用。該屬性的默認值是false
unpackWAR 如果爲true,Tomcat在運行web應用程序前將展開所有壓縮的web應用程序。默認值是true

提示:可查看tomcat關於context元素的文檔。

context元素的reloadable屬性

配置context元素的reloadable屬性爲true,會讓tomcat自動加載更新後的web應用。代碼形式如下:

<Host name="www.google.com"  appBase="c:\google">
        <Context path="" docBase="c:\google\mail" reloadable="true" />
</Host>
  • 1
  • 2
  • 3

如果reloadable="true",會讓tomcat自動加載更新後的web應用,意思是web應用裏面的java程序更改之後,不需要重新發布,服務器會自動加載。在實際開發中,建議不要配置,配置之後有一個弊病,即服務器只要發現程序改動,就會加載,web應用程序一旦很大,服務器不停地加載,就會很容易導致內存溢出,包括一些莫名其妙的問題發生。若web應用比較小,則建議配置。
注意:如上配置context元素的reloadable屬性爲true,只是指定的web應用會被自動加載
若在conf/context.xml裏面配置,配置形式如下:

<Context reloadable="true">

    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

</Context>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

意味着服務器裏所有的web應用都會自動加載,意思是將來服務器裏面的所有web應用改動java程序,都不需要重新發布,由服務器自動加載。這稱之爲全局性的配置

Tomcat體系架構

這裏寫圖片描述
Tomcat服務器的啓動是基於一個server.xml文件的,Tomcat啓動的時候首先會啓動一個Server,Server裏面就會啓動Service,Service裏面就會啓動多個”Connector(連接器)”,每一個連接器都在等待客戶機的連接,當有用戶使用瀏覽器去訪問服務器上面的web資源時,首先是連接到Connector(連接器),Connector(連接器)是不處理用戶的請求的,而是將用戶的請求交給一個Engine(引擎)去處理,Engine(引擎)接收到請求後就會解析用戶想要訪問的Host,然後將請求交給相應的Host,Host收到請求後就會解析出用戶想要訪問這個Host下面的哪一個Web應用,一個web應用對應一個Context。
以上Tomcat體系架構圖是根據server.xml文件畫出來的。

Tomcat服務器的管理平臺

Tomcat服務器的管理平臺用來管理Tomcat服務器下的所有web應用。
那麼如何進入Tomcat服務器的管理平臺呢?
我們先啓動Tomcat服務器,向瀏覽器敲入URL地址http://localhost:8080,進入如下界面。
這裏寫圖片描述
點擊Manager App,會彈出如下對話框。
這裏寫圖片描述
要求我們輸入用戶名和密碼,那麼用戶名和密碼從哪兒去找呢?很顯然我們應該去tomcat服務器配置文件conf裏面去找,可以發現在conf文件夾中找到tomcat-users.xml文件,有關鍵內容如下:

<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
  <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
</tomcat-users>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

打開以上註釋,並修改爲:

<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">

  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>

</tomcat-users>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

很顯然可得到一個用戶,用戶名爲tomcat,密碼爲tomcat。修改完tomcat-users.xml文件,必須重啓tomcat服務器,然後去登錄Tomcat Manager Application。
這裏寫圖片描述
點擊確定,會出現如下錯誤界面:
這裏寫圖片描述
爲什麼訪問時被拒絕呢?是因爲登錄的用戶權限不夠大,所以應該創建一個管理員的角色,併爲tomcat用戶設置一個管理員的角色。修改tomcat-users.xml文件爲:

<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">

  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager-gui"/>
  <user username="tomcat" password="tomcat" roles="tomcat,manager-gui"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>

</tomcat-users>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

注意:rolename=”manager-gui
此時重啓tomcat服務器,然後去登錄Tomcat Manager Application。點擊Manager App直接進入tomcat服務器管理平臺。
這裏寫圖片描述
Tomcat服務器管理平臺的簡單使用:
若在webapps目錄下新建一個web應用,比如aa文件夾。
這裏寫圖片描述
此時刷新Tomcat服務器管理平臺,會看到aa這個web應用。
這裏寫圖片描述
將打包成war的web應用部署到服務器上:
這裏寫圖片描述

WEB開發的前景

說到這個地方,很多人就沒勁了,爲什麼呢?搞半天就是做網站喲,沒點意思。所以這裏特意講下web開發的前景,免得有些人像菜鳥一樣,以爲自己很懂,其實啥都不懂,說些傻話。要講web開發前景,首先要強調一點,你學JavaWeb,開發的是程序,別人通過瀏覽器,訪問的是你寫的程序,程序爲用戶完成服務後,再把結果通過http響應寫到瀏覽器中顯示,思想不要停留在90年代,以爲通過瀏覽器看到的都是網頁。要注意,將來網站都是用來提供服務的,像你們思想中的網頁,只是網站提供的一種服務而已。
再者,要講web開發前景,就不得不提軟件開發的兩種架構之爭了,一種是c/s架構,一種是b/s架構。
軟件開發的兩種架構:

  • c/s架構。
    這裏寫圖片描述
  • b/s架構。
    這裏寫圖片描述

何爲b/s架構呢?(瀏覽器/服務器架構)就是指數據和程序都在服務器端,客戶端通過瀏覽器訪問程序並獲取數據。這種架構的最大好處就是服務器端程序一旦修改,所有客戶端訪問的都是最新的程序,開發人員只管維護服務器就行了,不用管客戶端維護的事。這種架構的最大缺點就是,由於客戶端都是使用瀏覽器來訪問服務器程序的,數據最終顯示在瀏覽器中,瀏覽器有多強,數據就能顯示成什麼樣式,數據的顯示樣式最終由瀏覽器決定。由於這種特性,所以b/s架構很少用來開發一些對顯示有特殊要求的程序,例如遊戲,現在的瀏覽器很難做到把數據顯示成一個人,拿着一把刀,到處找人PK,並且還不卡。
何爲c/s架構呢?就是指程序運行在客戶機上,數據在服務器上。這種架構有一個很大的毛病,就是程序一旦修改,需要更新所有的客戶機程序,客戶機多,維護的工作量相當恐怖。這種架構的優點是:由於數據的計算在客戶機上,服務器的壓力小,並且由於數據的顯示也由程序員自己編寫gui程序完成,顯示不受限制。所以c/s架構適合用於開發像遊戲這樣的程序。

但是,隨着網絡帶寬的不斷提升,雲計算概念的提出,瀏覽器只要足夠強大,c/s架構立馬就會被淘汰,不僅c/s架構會被淘汰,軟件最終都會消失、操作系統都可以沒有,最終將會是b/s架構的天下,也就是瀏覽器+搜索引擎的天下。所有現在桌面軟件提供的功能,最後都由網站提供,也就是說,將來打開電腦就是一個瀏覽器,想要什麼服務,通過搜索引擎一找,就可以在網上找到相應的服務,用就是了。所以web開發人員是現在最流行的崗位。


本文轉載自李阿昀-http://blog.csdn.net/yerenyuan_pku/article/details/51836130

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章