前言
針對在本地訪問文件或資源出現的跨域問題,可以通過搭建本地服務器來解決,本篇隨筆主要介紹通過搭建Apache Tomcat服務器來解決跨域。包括Apache Tomcat的下載、安裝、環境變量的配置以及項目部署等。
具體內容
一、Apache Tomcat的下載
Apache Tomcat下載網址:https://tomcat.apache.org/
選擇下載版本,現在最新的版本是Tomcat 9.0.27。這里下載最新版本,單擊"Download",進入到下載頁面,如下圖所示:
選擇"zip(pgp, sha512)"進行下載,下載zip版本的好處是不用安裝,下載完成直接解壓就可以使用了。下載完成后,如下圖所示:
二、Apache Tomcat的安裝及環境變量的配置
由於下載的是zip版本的,故不需要再單獨安裝,直接對壓縮包進行解壓,並進行環境變量的配置。
(1)解壓完成之后,如下圖所示:
(2)進入"高級系統設置"窗口,配置環境變量
使用"Win + X",點擊"系統",如下圖所示:
點擊"系統信息",如下圖所示:
點擊"高級系統設置",如下圖所示:
打開"高級系統設置"之后,如下圖所示:
單擊"環境變量",進入如下圖所示:
單擊"新建",新建2個系統變量"CATALINA_BASE、CATALINA_HOME",以及配置Path.
•新建CATALINA_BASE變量,如下圖所示:
•新建CATALINA_HOME變量,如下圖所示:
PS1:不太了解的讀者可能會對Tomcat安裝目錄的環境變量的名字(如CATALINA_HOME)而感到疑惑,按照其他環境變量的設置來看,JAVA_HOME表示JDK的安裝目錄,同理,應該使用TOMCAT_HOME來表示Tomcat的安裝目錄,為何要使用CATALINA_HOME呢?事實上,在Tomcat 4以前就是使用TOMCAT_HOME來表示Tomcat的安裝目錄,在Tomcat 4以后,采用了新的Servlet容器Catalina,所以環境變量的名字也改為了CATALINA_HOME。
PS2:在Windows系統下,環境變量的名字不區分大小寫,也就是說CATALINA_HOME與catalina_home是一樣的。
PS3:如果要想在任意目錄下都能啟動Tomcat,就需要設置CATALINA_HOME環境變量,將CATALINA_HOME添加到Windows系統的環境變量中,其值就是Tomcat的安裝目錄。此處Tomcat的安裝目錄是D:\Apache tomcat \apache-tomcat-9.0.27。如果不想在系統的環境變量中添加,也可以直接在startup.bat文件頭部設置以下這行代碼:
SET CATALINA_HOME= D:\Apache tomcat \apache-tomcat-9.0.27
•配置Path
打開Path,添加變量值,如下圖所示:
單擊"確定"配置完成之后,檢驗Tomcat環境變量是否配置成功,是否能成功啟動Tomcat服務?
啟動Tomcat服務的方法有2種:
方法一:
在終端輸入startup命令,然后回車,或者直接在Tomcat目錄的bin文件夾下,雙擊“startup.bat”來啟動Tomcat服務,啟動成功如下圖所示:
PS1:在Tomcat目錄下的bin文件件下,直接雙擊打開"startup.bat"文件會閃退,解決方法如下:
右擊startup.bat文件,選擇"編輯"打開該文件,在該文件尾部加上"pause"即可,如下圖所示:
方法二:將方法一中通過手動啟動方式改為自動啟動方式
當我打開“計算機管理”->“服務和應用程序”->“服務”下時,沒有找到Apache Tomcat服務;於是就在網上找了好多解決方法,找到沒有Tomcat服務的原因是:在Tomact的bin目錄文件夾下沒有“service.bat”和“tomcat9.exe”這兩個文件,因為我使用的是Tomcat免安裝版,所以為了能得到這兩個缺少的文件,去Tomcat官網下載免安裝版所對應版本號的EXE安裝版,下載完成后,將其中的“service.bat”和“tomcat9.exe”這兩個文件復制到bin目錄下,然后將“service.bat”鼠標左鍵點擊拖入到dos窗口, 按Enter鍵打開終端,輸入“service.bat install Tomcat”命令安裝服務,安裝成功后,再按照上述方法打開“服務”,即可看到已存在Apache Tomcat服務,右鍵點擊該服務,選擇“屬性”,將“啟動類型”由“手動”設置為“自動”。如下圖所示:
測試Tomcat的方法:打開瀏覽器,在地址欄輸入http://127.0.0.1:8080或者http://localhost:8080,回車,啟動成功如下圖所示:
以上表示在順利的情況下,就表示配置完成了,前提是在本機上已安裝JAVA JDK。
===============================================================
當然,在驗證Tomcat是否配置成功時,出現了一點兒小插曲,在命令行運行startup命令,命令行報錯,如下圖所示:
分析錯誤原因是:計算機上未安裝JAVA,更沒有配置JAVA環境變量,於是就去下載安裝了JAVA,並進行JAVA環境變量的配置,最終解決了上述問題。
下面記錄安裝Java,以及配置環境變量的過程:
安裝JAVA,直接去網頁上下載,然后安裝JDK即可,直接運行JDK.exe的可執行文件,默認安裝即可,安裝JDK,會默認安裝JRE。安裝路徑最好是不包含中文名。安裝完成之后,配置環境變量:
配置JAVA環境變量的步驟和Tomcat相似,需要新建"JAVA_HOME"和"CLASSPATH"變量名,以及配置Path。
•新建JAVA_HOME變量,如下圖所示:
•新建CLASSPATH變量,如下圖所示:
CLASSPATH變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
解釋說明:
.表示當前路徑,%JAVA_HOME%就是引用前面指定的JAVA_HOME;
JAVA_HOME指明JDK安裝路徑,此路徑下包括lib,bin,jre等文件夾,tomcat,eclipse等的運行都需要依靠此變量。
PATH使得系統可以在任何路徑下識別java命令。
CLASSPATH為java加載類(class or lib)路徑,只有類在classpath中,java命令才能識別。
•配置Path
打開Path,添加變量值,如下圖所示:
單擊"確定"配置完成之后,檢驗JAVA環境變量是否配置成功?
在CMD終端輸入"java -version",如下圖所示,表示安裝成功
三、Apache Tomcat項目部署
部署靜態頁面或項目,其實有很多種方法,下面介紹3種:
方法一:直接把靜態頁面復制到Tomcat安裝目錄的webapps目錄中
例如:新建一個practice文件夾,在文件夾里新建一個test.html文件,然后將整個practice文件夾復制到Tomcat安裝目錄的webapps目錄中,啟動tomcat后,在瀏覽器輸入ip:port/practice/test.html即可訪問了。
方式二:在Tomcat安裝目錄中有一個conf文件夾,打開此文件夾,其中包含配置文件server.xml,打開配置文件,並在<host>和</host>之間插入如下語句
<Context path="practice" docBase="D:\practice" debug="0" reloadable="true" crossContext="true"/>
其中,path為虛擬路徑,docBase為項目的路徑,啟動tomcat后在瀏覽器輸入ip:port/practice/test.html即可訪問了。
方式三:在conf目錄中,在Catalina\localhost(此處需要注意目錄的大小寫)目錄下新建一個XML文件,任意命名(例如:hello),只要和當前文件中的文件名不重復即可,代碼如下
<Context path="" docBase="D:\ practice " debug="0" reloadable="true" crossContext="true"/>
其中,path屬性可以不寫,docBase為項目的路徑,啟動tomcat后在瀏覽器輸入ip:port/hello/test.html即可訪問了。
結束語
不管是項目,還是單個的文件,都可以通過扔到服務器上再去訪問,這樣就可以解決使用file協議訪問文件帶來的跨域問題,服務器上的文件一般都是通過http協議來訪問文件,則不會存在跨域的問題。
在搭建Tomcat服務器的整個過程中,遇到了不少問題,自己慢慢查詢得以解決,收貨頗多。