Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10168911
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类:

2012-11-20 12:24:34

Tomcat学习笔记(一)——startup.bat 与shutdown.bat  

2012-11-19 10:25:29|  分类: apache_tomcat |  标签: |字号 

最近在学习 张孝祥老师的Tomcat 视频, 算是后知后觉了吧,为了以后复习巩固,我把一些要点记下来。

操作系统:win7 旗舰版 64位

Tomcat 版本:apache-tomcat-7.0.23-windows-x64.zip (直接加压使用)

Tomcat 解压目录:D:\tomcat-7.0.23(“Tomcat 解压目录” 根据具体情况改变 )

一、 设置Tomcat 运行环境

Tomcat 运行需要设置JAVA_HOME 环境变量

JAVA_HOME 变量的设置方式有两种:

方法1. 在“计算机” —— 右键点击 “属性” —— 点击 “高级系统变量” —— 在 “高级”选项卡下 —— 点击“ 环境变量” —— 在“系统变量” 下点击“新建” 按钮

输入“变量名” :JAVA_HOME

输入变量值:D:\jdk1.7.0_01 (这是我的JDK的安装目录)

然后一直点击确定按钮

方法2. 找到 D:\tomcat-7.0.23\bin 目录 下的 startup.bat 批处理文件,用文本方式打开

在第一行代码后面添加代码 set JAVA_HOME=D:\jdk1.7.0_01

如下:

@echo offset JAVA_HOME=D:\jdk1.7.0_01

二、环境变量测试:

运行cmd 下转到 D:\tomcat-7.0.23\bin 目录下运行 startup.bat

Tomcat 会弹出一个新的运行框,显示巴拉巴拉一堆运行状态回显,如果回显文字信息中没有错误和警告,说明 Tomcat 启动加载已经OK

浏览器运行: 弹出漂亮的 Tomcat 主页面 说明Tomcat 运行成功

三、 startup.bat 批处理文件详解

提示:我是在cmd中,转到 D:\tomcat-7.0.23\bin 目录下运行 startup.bat ,所以我的当前工作目录为:D:\tomcat-7.0.23\bin ,以此目录为例进行详解

Tomcat 解压目录:D:\tomcat-7.0.23

  1. @echo off //此行命令效果:只显示下列命令执行结果,不显示命令本身
@echo off //此行命令效果:只显示下列命令执行结果,不显示命令本身
  1. if "%OS%" == "Windows_NT" setlocal //如果本机OS是windows_NT 则设置本机环境变量
if "%OS%" == "Windows_NT" setlocal //如果本机OS是windows_NT 则设置本机环境变量
  1. rem Guess CATALINA_HOME if not defined //为注释代码:判断 CATALINA_HOME 环境变量是否已经配置
  2. set "CURRENT_DIR=%cd%" //设置CURRENT_DIR 变量(当前工作目录)为:D:\tomcat-7.0.23\bin
  3. if not "%CATALINA_HOME%" == "" goto gotHome //如果配置了 CATALINA_HOME 环境变量跳转执行 gotHome
rem Guess CATALINA_HOME if not defined //为注释代码:判断 CATALINA_HOME 环境变量是否已经配置 set "CURRENT_DIR=%cd%" //设置CURRENT_DIR 变量(当前工作目录)为:D:\tomcat-7.0.23\bin if not "%CATALINA_HOME%" == "" goto gotHome //如果配置了 CATALINA_HOME 环境变量跳转执行 gotHome
  1. set "CATALINA_HOME=%CURRENT_DIR%" //如果没有设置,则设置 CATALINA_HOME 变量为:D:\tomcat-7.0.23\bin
  2. if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome //查看"当前工作目录\bin" 目录(即D:\tomcat-7.0.23\bin\bin)下是否存在catalina.bat 文件,如存在跳转okHome
  3. cd .. //回到上级子目录,即:D:\tomcat-7.0.23 ,此时当前工作目录已经更改为:D:\tomcat-7.0.23
  4. set "CATALINA_HOME=%cd%" // 更改 CATALINA_HOME 变量值为:D:\tomcat-7.0.23
  5. cd "%CURRENT_DIR%" //切换至当前工作目录:D:\tomcat-7.0.23
set "CATALINA_HOME=%CURRENT_DIR%" //如果没有设置,则设置 CATALINA_HOME 变量为:D:\tomcat-7.0.23\bin if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome //查看"当前工作目录\bin" 目录(即D:\tomcat-7.0.23\bin\bin)下是否存在catalina.bat 文件,如存在跳转okHome cd .. //回到上级子目录,即:D:\tomcat-7.0.23 ,此时当前工作目录已经更改为:D:\tomcat-7.0.23 set "CATALINA_HOME=%cd%" // 更改 CATALINA_HOME 变量值为:D:\tomcat-7.0.23 cd "%CURRENT_DIR%" //切换至当前工作目录:D:\tomcat-7.0.23

  1. :gotHome
  2. if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome //如果找得到 catalina.bat 批处理文件,则跳转okHome
:gotHome if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome //如果找得到 catalina.bat 批处理文件,则跳转okHome
  1. echo The CATALINA_HOME environment variable is not defined correctly //找不到catalina.bat文件,显示错误信息,然后结束
  2. echo This environment variable is needed to run this program //在cmd执行startup.bat的当前目录不为:“tomcat解压目录”和“tomcat解压目录\bin”时会提示此错误信息
echo The CATALINA_HOME environment variable is not defined correctly //找不到catalina.bat文件,显示错误信息,然后结束 echo This environment variable is needed to run this program //在cmd执行startup.bat的当前目录不为:“tomcat解压目录”和“tomcat解压目录\bin”时会提示此错误信息
  1. goto end
goto end
  1. //由此可见 catalina.bat 才是真正的执行 Tomcat 启动和关闭的批处理程序
//由此可见 catalina.bat 才是真正的执行 Tomcat 启动和关闭的批处理程序
  1. //在执行startup.bat时,如果startup.bat 文件不在 ”Tomcat解压目录“或者“Tomcat解压目录\bin” 目录下
//在执行startup.bat时,如果startup.bat 文件不在 ”Tomcat解压目录“或者“Tomcat解压目录\bin” 目录下
  1. //才会提示CATALINA_HOME 错误信息
//才会提示CATALINA_HOME 错误信息
  1. :okHome
  2. set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat" //至此catalina.bat文件已经确定存在了,现在设置 EXECUTABLE (执行文件)环境变量
:okHome set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat" //至此catalina.bat文件已经确定存在了,现在设置 EXECUTABLE (执行文件)环境变量
  1. rem Check that target executable exists
rem Check that target executable exists
  1. if exist "%EXECUTABLE%" goto okExec //如果EXECUTABLE 变量已经设置成功,跳转okExec执行
if exist "%EXECUTABLE%" goto okExec //如果EXECUTABLE 变量已经设置成功,跳转okExec执行
  1. echo Cannot find "%EXECUTABLE%" //否则提示找不到catalina.bat 执行文件
echo Cannot find "%EXECUTABLE%" //否则提示找不到catalina.bat 执行文件
  1. echo This file is needed to run this program
  2. goto end
echo This file is needed to run this program goto end
  1. :okExec
  2. rem Get remaining unshifted command line arguments and save them in the
  3. set CMD_LINE_ARGS= //清除CMD_LINE_ARGS环境变量原来的值
:okExec rem Get remaining unshifted command line arguments and save them in the set CMD_LINE_ARGS= //清除CMD_LINE_ARGS环境变量原来的值
  1. :setArgs
  2. if ""%1""=="""" goto doneSetArgs //如果第二个参数为空跳转doneSetArgs,即已经接完了传入的参数
:setArgs if ""%1""=="""" goto doneSetArgs //如果第二个参数为空跳转doneSetArgs,即已经接完了传入的参数
  1. set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1 //给 CMD_LINE_ARGS 添加参数,并以空格隔开
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1 //给 CMD_LINE_ARGS 添加参数,并以空格隔开
  1. shift //截掉第一个参数,使第二个参数变为第一个参数
shift //截掉第一个参数,使第二个参数变为第一个参数
  1. goto setArgs
goto setArgs
  1. // 以上5行代码的作用就是将所有参数用空格间隔开,并赋值CMD_LINE_ARGS
// 以上5行代码的作用就是将所有参数用空格间隔开,并赋值CMD_LINE_ARGS
  1. :doneSetArgs
  2. call "%EXECUTABLE%" start %CMD_LINE_ARGS% //打开新窗口,执行 EXECUTABLE 环境变量所代表的catalina.bat 批处理文件与 CMD_LINE_ARGS 代表的参数
:doneSetArgs call "%EXECUTABLE%" start %CMD_LINE_ARGS% //打开新窗口,执行 EXECUTABLE 环境变量所代表的catalina.bat 批处理文件与 CMD_LINE_ARGS 代表的参数
  1. :end //结束
:end //结束


总结:

1. startup.bat 的作用主要是检查catalina.bat 执行所需环境,并调用catalina.bat 批处理文件

2. shutdown.bat 文件与 startup.bat 文件的内容只有一点不同,即倒数第二行代码,通过修改执行参数 start 为stop 并交由catalina.bat 执行实现Tomcat 的关闭功能

补充:

1. rem

代码前面有 rem :所修饰的代码是注释说明文字

2. @

代码前面有 @ :所修饰的代码执行时,只显示执行结果,不显示命令本身

 

 

操作系统:win7 旗舰版 64位

Tomcat 版本:apache-tomcat-7.0.23-windows-x64.zip (直接加压使用)

Tomcat 解压目录:D:\tomcat-7.0.23(“Tomcat 解压目录” 根据具体情况改变 )

提示:我是在cmd中,转到 D:\tomcat-7.0.23\bin 目录下运行 startup.bat ,所以我的当前工作目录为:D:\tomcat-7.0.23\bin ,以此目录为例进行详解

在Tomcat中 catalina.bat 才是真正的执行 Tomcat 启动和关闭的批处理程序

一、catalina.bat详解部分代码:

  1. rem Get standard Java environment variables
  2. if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath//检查是否存在 setclasspath.bat 文件
  3. echo Cannot find "%CATALINA_HOME%\bin\setclasspath.bat"//如果不存在,提示找不到setclasspath.bat 文件
  4. echo This file is needed to run this program
  5. goto end
  6. :okSetclasspath
  7. call "%CATALINA_HOME%\bin\setclasspath.bat" %1 //运行setclasspath.bat 文件
  8. if errorlevel 1 goto end
rem Get standard Java environment variables if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath//检查是否存在 setclasspath.bat 文件 echo Cannot find "%CATALINA_HOME%\bin\setclasspath.bat"//如果不存在,提示找不到setclasspath.bat 文件 echo This file is needed to run this program goto end :okSetclasspath call "%CATALINA_HOME%\bin\setclasspath.bat" %1 //运行setclasspath.bat 文件 if errorlevel 1 goto end


  1. rem quotes into the CLASSPATH
  2. if "%CLASSPATH%" == "" goto emptyClasspath//如果CLASSPATH 变量没有设置,跳转emptyClasspath
  3. set "CLASSPATH=%CLASSPATH%;"
  4. :emptyClasspath
  5. set "CLASSPATH=%CLASSPATH%%CATALINA_HOME%\bin\bootstrap.jar"// 追加 bootstrap.jar 文件目录为CLASSPATH 环境变量
  6. // bootstrap.jar 是Tomcat 的内核,bootstrap.jar 同时引用了另外一个jar 包:commons-daemon.jar
  7. // 可以用解压文件查看bootstrap.jar\META-INF\MANIFEST.MF 文件,里面的Class-Path值为: commons-daemon.jar
  8. //Main-Class 值为:org.apache.catalina.startup.Bootstrap ,说明Tomcat主启动程序的类为Bootstrap
rem quotes into the CLASSPATH if "%CLASSPATH%" == "" goto emptyClasspath//如果CLASSPATH 变量没有设置,跳转emptyClasspath set "CLASSPATH=%CLASSPATH%;" :emptyClasspath set "CLASSPATH=%CLASSPATH%%CATALINA_HOME%\bin\bootstrap.jar"// 追加 bootstrap.jar 文件目录为CLASSPATH 环境变量 // bootstrap.jar 是Tomcat 的内核,bootstrap.jar 同时引用了另外一个jar 包:commons-daemon.jar // 可以用解压文件查看bootstrap.jar\META-INF\MANIFEST.MF 文件,里面的Class-Path值为: commons-daemon.jar //Main-Class 值为:org.apache.catalina.startup.Bootstrap ,说明Tomcat主启动程序的类为Bootstrap


 

  1. set _EXECJAVA=%_RUNJAVA%
  2. set MAINCLASS=org.apache.catalina.startup.Bootstrap//设置主启动类
  3. set ACTION=start
  4. set SECURITY_POLICY_FILE=
  5. set DEBUG_OPTS=
  6. set JPDA=
set _EXECJAVA=%_RUNJAVA% set MAINCLASS=org.apache.catalina.startup.Bootstrap//设置主启动类 set ACTION=start set SECURITY_POLICY_FILE= set DEBUG_OPTS= set JPDA=


 

  1. :doStart
  2. shift
  3. if not "%OS%" == "Windows_NT" goto noTitle
  4. if "%TITLE%" == "" set TITLE=Tomcat//设置TITLE (标题)参数为“Tomcat”
  5. set _EXECJAVA=start "%TITLE%" %_RUNJAVA% //在新窗口执行命令
:doStart shift if not "%OS%" == "Windows_NT" goto noTitle if "%TITLE%" == "" set TITLE=Tomcat//设置TITLE (标题)参数为“Tomcat” set _EXECJAVA=start "%TITLE%" %_RUNJAVA% //在新窗口执行命令

二、setclasspath.bat

  1. rem In debug mode we need a real JDK (JAVA_HOME)
  2. if ""%1"" == ""debug"" goto needJavaHome //debug 模式下需要设置JAVA_HOME环境变量
  3. rem Otherwise either JRE or JDK are fine
  4. if not "%JRE_HOME%" == "" goto gotJreHome //如果设置了JRE_HOME 变量,跳转gotJreHome
  5. if not "%JAVA_HOME%" == "" goto gotJavaHome //如果设置了JAVA_HOME 变量,跳转gotJavaHome
  6. echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined//提示没有设置JAVA_HOME、JRE_HOME环境变量
  7. echo At least one of these environment variable is needed to run this program
  8. goto exit
  9. :needJavaHome
  10. rem Check if we have a usable JDK
  11. if "%JAVA_HOME%" == "" goto noJavaHome //如果没设置JAVA_HOME变量,跳转noJAVAHOME
  12. if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome//检查所需可执行文件
  13. if not exist "%JAVA_HOME%\bin\javaw.exe" goto noJavaHome
  14. if not exist "%JAVA_HOME%\bin\jdb.exe" goto noJavaHome
  15. if not exist "%JAVA_HOME%\bin\javac.exe" goto noJavaHome
  16. set "JRE_HOME=%JAVA_HOME%"//JAVA_HOME环境完整,将JAVA_HOME变量赋值JRE_HOME
  17. goto okJava
rem In debug mode we need a real JDK (JAVA_HOME) if ""%1"" == ""debug"" goto needJavaHome //debug 模式下需要设置JAVA_HOME环境变量 rem Otherwise either JRE or JDK are fine if not "%JRE_HOME%" == "" goto gotJreHome //如果设置了JRE_HOME 变量,跳转gotJreHome if not "%JAVA_HOME%" == "" goto gotJavaHome //如果设置了JAVA_HOME 变量,跳转gotJavaHome echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined//提示没有设置JAVA_HOME、JRE_HOME环境变量 echo At least one of these environment variable is needed to run this program goto exit :needJavaHome rem Check if we have a usable JDK if "%JAVA_HOME%" == "" goto noJavaHome //如果没设置JAVA_HOME变量,跳转noJAVAHOME if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome//检查所需可执行文件 if not exist "%JAVA_HOME%\bin\javaw.exe" goto noJavaHome if not exist "%JAVA_HOME%\bin\jdb.exe" goto noJavaHome if not exist "%JAVA_HOME%\bin\javac.exe" goto noJavaHome set "JRE_HOME=%JAVA_HOME%"//JAVA_HOME环境完整,将JAVA_HOME变量赋值JRE_HOME goto okJava


总结:

1. 许多参数,类似于classpath之类的环境变量在批处理文件执行后就会覆盖系统设置的变量,批处理文件结束后,系统的变量才会生效,所以在批处理文件执行期间需要修改classpath文件可在批处理文件中设置

2. 运行Tomcat 只需设置JAVA_HOME 环境变量,CATALINA_HOME 环境变量会从执行 startup.bat 的当前目录 CD 变量中赋值

3. 想要在Tomcat启动失败后能看到一闪而过的窗口,可修改 catalina.bat 文件下的代码

  1. :doStart
  2. shift
  3. if not "%OS%" == "Windows_NT" goto noTitle
  4. if "%TITLE%" == "" set TITLE=Tomcat
  5. set _EXECJAVA="color: rgb(255, 0, 0);">start "%TITLE%" %_RUNJAVA%
  6. goto gotTitle
  7. :noTitle
  8. set _EXECJAVA="color: rgb(255, 0, 0);">start %_RUNJAVA%
:doStart shift if not "%OS%" == "Windows_NT" goto noTitle if "%TITLE%" == "" set TITLE=Tomcat set _EXECJAVA=start "%TITLE%" %_RUNJAVA% goto gotTitle :noTitle set _EXECJAVA=start %_RUNJAVA%


红色部分删去,等号前后不能有空格

 
 

环境说明:

Tomcat 解压目录:D:\tomcat-7.0.23

一、默认根目录

概念及原则

1. Tomcat 的默认根目录:D:\tomcat-7.0.23\webapps\ROOT(ROOT 目录下必须有WEB-INF 目录,ROOT 目录才会被设置为默认根目录)

2. 只能有一个默认根目录

3. 一个 默认根目录只能映射一个 “文件系统目录”

虚拟根目录的设置

1. Tomcat 自动将D:\tomcat-7.0.23\webapps\ROOT 设置为根目录

对应的设置为:D:\tomcat-7.0.23\conf\server.xml 文件里的 元素,name属性:主机名称,appBase属性:基准目录 ,基准目录下的Root 目录被自动设置为根目录

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

2. 在 server.xml 文件中设置 元素

path: 为空代表网站根目录

docBase:可以设置绝对路径,也可设置相对路径,相对路径是相对 appBase 属性所设的目录而言的

说明:每一个 元素是一个主机,元素是一个虚拟目录

浏览测试路径 URL:

这时需要在D:\tomcat-7.0.23\webapps\web 目录下存在,index.html 文件

浏览测试路径 URL: 访问的文件是D:\tomcat-7.0.23\webapps\web\index.html

二、虚拟子目录

1. 可以设置多个 “虚拟目录”

2. 可以将一个 “文件系统目录” 映射成任意的单级或多级 “虚拟目录” 结构形式

3. 一个 “文件系统目录” 可以被映射成多个 “虚拟目录”

URL请求所访问的web文件的查找匹配原则:最长路径匹配原则

先查找最长的 “虚拟目录" 是否匹配URL路径,如果不匹配,再查找匹配的短“虚拟目录"

虚拟子目录设置

1. 在 server.xml 文件中设置 元素

path: 以 / 开头 ,表示虚拟子目录

docBase:可以设置绝对路径,也可设置相对路径,相对路径是相对 appBase 属性所设的目录而言的

说明:每一个 元素是一个主机,元素是一个虚拟目录

浏览测试路径 URL:

2. 特定目录中包含的 XML 文档包含元素

例如:

2.1 Tomcat 4.X 的/webapps 目录

2.2 Tomcat 5.X 的/conf/<引擎名>/<主机名> 目录

3. 元素的appBase 属性所设置的基准目录的下一级目录中含有 WEB-INF/web.xml 文件

4. 元素的appBase 属性所设置的基准目录中有 var 文件

var 文件打包方式

只打包文件夹里面的内容,不打包文件夹本身。 例如打包为test.var

1. 进入文件夹F:\web,使用打包命令

jar -cvf test.var .

此时生成的var 包在 F:\web 目录下

浏览测试路径 URL:

2. 不进入文件夹,在F:\ 路径下,使用打包命令

jar -cvf test.var -C web .

此时生成的var 包在F:\ 目录下,将 var 包放到 F:\web 目录下

浏览测试路径 URL:

注意:在D:\tomcat-7.0.23\webapps 目录或者D:\tomcat-7.0.23\webapps\ROOT 目录下,貌似要解压出来,我在测试时不加压不行

说明:在编写blog是使用了张孝祥老师的视频截图

 

一、基于主机名的虚拟主机

网络环境:

1. 浏览器访问基于主机名的虚拟主机时,访问URL必须采用主机名,不能使用IP地址

2.整个网络系统中必须建立主机名与IP地址的映射关系 

  2.1使用本地 Hosts 文件建立主机名与IP的映射关系(C:\Windows\System32\drivers\etc\Hosts)

127.0.0.1

127.0.0.1

2.2 使用DNS (要钱的)

在设置好Hosts 文件后使用命令行ping localhost 和 都能ping 通

创建两个虚拟主机的虚拟目录结构如下:

F:\web

|———+ VM1

|—————+ROOT

|————————+WEB-INF

|————————+index.html

|———+ VM2

|—————+ROOT

|————————+WEB-INF

|————————+index.html

修改 server.xml 文件

添加以下代码直 server.xml 文件的 元素中

  1. <Host name="" appBase="F:\web\VM1"
  2. unpackWARs="true" autoDeploy="true" />
  1. <Host name="" appBase="F:\web\VM2"
  2. unpackWARs="true" autoDeploy="true" />

测试:

1. 重启Tomcat

2. 浏览器测试:

URL:

URL:

二、基于端口号的虚拟主机

配置原理:

1. 一个 元素用于配置一个对外的连接器,对于Web服务器的每一个监听端口号,都要配置一个独立的元素

2. 一个 元素对应的连接器必须有一个 元素关联

3. 将一个或多个 元素与 元素关联的方式:将 元素与 元素嵌套在同一个 元素中

配置方法:

在 server.xml 文件 的 元素里面添加另一个 元素

  1. <Service name="<span style="color: rgb(255, 0, 0);">secend-servspan>">
  2. <Connector port="<span style="color: rgb(255, 0, 0);">80span>" protocol="HTTP/1.1"
  3. connectionTimeout="20000"
  4. redirectPort="8443" />
  5. <Engine name="Catalina" defaultHost="<span style="color: rgb(255, 0, 0);">span>">
  6. <Host name="" appBase="F:\web\VM1"
  7. unpackWARs="true" autoDeploy="true" />
  8. <Host name="" appBase="F:\web\VM2"
  9. unpackWARs="true" autoDeploy="true" />
  10. Engine>
  11. Service>
secend-serv"> 80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ">

注意:

1. 元素的 name 属性名称必须与原 名称不同,因此修改为:secend-serv

2. 元素的 port 属性修改为 80(或者其他你想要的不被占用的端口)

3. 元素的 defaultHost 属性修改为所包含的一个 属性的 name 属性值,我选用

4. 此部分我没有测试成功,正在尝试中……

三、基于IP地址的虚拟主机

1. HTTP 1.0 不支持Host 字段,在站点统一使用80 端口时,人吗只能采用不同的IP地址来建立虚拟主机

缺点:每个虚拟主机占用一个IP,IP消耗严重

2. HTTP 1.1 可以使用不同的主机名建立多个WEB站点,所以提供商一般不再建立基于IP地址的虚拟主机服务

3. Tomcat 不提供基于IP地址的虚拟主机方式

张孝祥老师的测试方式如下(我用下面方法无法测试,不知道为什么):

1. CMD 命令行下运行:telnet localhost 8080

2. Ctrl + ] , 然后回车

3. GET /test.html HTTP/1.1

Host:主机名

说明:主机名若不写,默认为localhost

阅读(2642) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~