前言

针对在本地访问文件或资源出现的跨域问题,可以通过搭建本地服务器来解决,本篇随笔主要介绍通过搭建Apache Tomcat服务器来解决跨域。包括Apache Tomcat的下载、安装、环境变量的配置以及项目部署等。

具体内容

一、Apache Tomcat的下载

Apache Tomcat下载网址:https://tomcat.apache.org/

阿帕奇maven配置_JAVA

选择下载版本,现在最新的版本是Tomcat 9.0.27。这里下载最新版本,单击"Download",进入到下载页面,如下图所示:

阿帕奇maven配置_阿帕奇maven配置_02

选择"zip(pgp, sha512)"进行下载,下载zip版本的好处是不用安装,下载完成直接解压就可以使用了。下载完成后,如下图所示:

阿帕奇maven配置_阿帕奇maven配置_03

二、Apache Tomcat的安装及环境变量的配置

由于下载的是zip版本的,故不需要再单独安装,直接对压缩包进行解压,并进行环境变量的配置。

(1)解压完成之后,如下图所示:

阿帕奇maven配置_tomcat_04

 (2)进入"高级系统设置"窗口,配置环境变量

使用"Win + X",点击"系统",如下图所示:

阿帕奇maven配置_JAVA_05

点击"系统信息",如下图所示:

阿帕奇maven配置_tomcat_06

点击"高级系统设置",如下图所示:

阿帕奇maven配置_tomcat_07

打开"高级系统设置"之后,如下图所示:

阿帕奇maven配置_环境变量_08

单击"环境变量",进入如下图所示:

阿帕奇maven配置_JAVA_09

 单击"新建",新建2个系统变量"CATALINA_BASECATALINA_HOME",以及配置Path.

•新建CATALINA_BASE变量,如下图所示:

  

阿帕奇maven配置_环境变量_10

•新建CATALINA_HOME变量,如下图所示:

 

阿帕奇maven配置_tomcat_11

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,添加变量值,如下图所示:

阿帕奇maven配置_阿帕奇maven配置_12

 

阿帕奇maven配置_环境变量_13

 

阿帕奇maven配置_阿帕奇maven配置_14

单击"确定"配置完成之后,检验Tomcat环境变量是否配置成功,是否能成功启动Tomcat服务?

启动Tomcat服务的方法有2种:

方法一:

在终端输入startup命令,然后回车,或者直接在Tomcat目录的bin文件夹下,双击“startup.bat”来启动Tomcat服务,启动成功如下图所示:

阿帕奇maven配置_JAVA_15

PS1:在Tomcat目录下的bin文件件下,直接双击打开"startup.bat"文件会闪退,解决方法如下:

右击startup.bat文件,选择"编辑"打开该文件,在该文件尾部加上"pause"即可,如下图所示:

阿帕奇maven配置_tomcat_16

方法二:将方法一中通过手动启动方式改为自动启动方式

当我打开“计算机管理”->“服务和应用程序”->“服务”下时,没有找到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服务,右键点击该服务,选择“属性”,将“启动类型”由“手动”设置为“自动”。如下图所示:

阿帕奇maven配置_阿帕奇maven配置_17

测试Tomcat的方法:打开浏览器,在地址栏输入http://127.0.0.1:8080或者http://localhost:8080,回车,启动成功如下图所示:

阿帕奇maven配置_环境变量_18

 

阿帕奇maven配置_tomcat_19

以上表示在顺利的情况下,就表示配置完成了,前提是在本机上已安装JAVA JDK。

===============================================================

当然,在验证Tomcat是否配置成功时,出现了一点儿小插曲,在命令行运行startup命令,命令行报错,如下图所示:

阿帕奇maven配置_tomcat_20

 分析错误原因是:计算机上未安装JAVA,更没有配置JAVA环境变量,于是就去下载安装了JAVA,并进行JAVA环境变量的配置,最终解决了上述问题。

下面记录安装Java,以及配置环境变量的过程:

安装JAVA,直接去网页上下载,然后安装JDK即可,直接运行JDK.exe的可执行文件,默认安装即可,安装JDK,会默认安装JRE。安装路径最好是不包含中文名。安装完成之后,配置环境变量:

配置JAVA环境变量的步骤和Tomcat相似,需要新建"JAVA_HOME"和"CLASSPATH"变量名,以及配置Path。

•新建JAVA_HOME变量,如下图所示:

阿帕奇maven配置_JAVA_21

•新建CLASSPATH变量,如下图所示:

阿帕奇maven配置_tomcat_22

 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,添加变量值,如下图所示:

阿帕奇maven配置_环境变量_23

单击"确定"配置完成之后,检验JAVA环境变量是否配置成功?

在CMD终端输入"java -version",如下图所示,表示安装成功

阿帕奇maven配置_JAVA_24

三、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服务器的整个过程中,遇到了不少问题,自己慢慢查询得以解决,收货颇多。