发布于 2014-10-24 06:00:20 | 413 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Tomcat教程,程序狗速度看过来!

Tomcat 开源Web应用服务器

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。


本文是一个可以用来启动tomcat服务器的批处理脚本,并为大家讲解了其执行原理,感兴趣的同学参考下。

从文件命名上看就知道这是一个启动批处理,这个批处理的主要功能就是为了找到另一个批处理catalina.bat,并且执行catalina.bat。
一开始就用if "%OS%" == "Windows_NT" setlocal 判断系统是否为Windows_NT,如果是的话则使用setlocal命令,此命令表示之后所有对环境变量的改变只限于该批处理文件,要还原原先的设置 可以执行endlocal,如未显式执行,则会在批处理的最后自动隐性执行endlocal命令。
接下来这段脚本设置CATALINA_HOME环境变量,并最终确定catalina.bat的路径。如图3-2-1-1清晰表达了 CATALINA_HOME变量值确定的逻辑。

①如果系统变量设置了CATALINA_HOME,则直接使用系统变量设置的值作为tomcat安装目录。

②假如没设置系统变量CATALINA_HOME,则以批处理或命令行当前目录作为CATALINA_HOME,此时如 果%CATALINA_HOME%\bin\catalina.bat存在,则批处理或命令行当前目录作为CATALINA_HOME。

③假 如%CATALINA_HOME%\bin\catalina.bat不存在,则把当前目录的上一级目录作为CATALINA_HOME,此时再判 断%CATALINA_HOME%\bin\catalina.bat是否存在,存在则当前目录的上一级目录就是CATALINA_HOME。否则提示找 不到CATALINA_HOME环境变量。
对于②跟③的情况可能比较容易产生疑问,

②主要针对用命令行执行,命令行的当前目录是tomcat安装目录,执行bin\startup.bat。

③的情 况可能是命令行执行,也可能是双击批处理执行,命令行执行是把当前目录切到tomcat安装目录\bin下,这两种执行方式的当前目录都是一样的。
********************************************************************************************
set "CURRENT_DIR=%cd%"
if not "%CATALINA_HOME%" == "" goto gotHome  
set "CATALINA_HOME=%CURRENT_DIR%"  
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome  
cd ..  
set "CATALINA_HOME=%cd%"  
cd "%CURRENT_DIR%"   
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome  
goto end
:okHome
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"   
if exist "%EXECUTABLE%" goto okExec   
goto end
:okExec
********************************************************************************************


 
图3-2-1-1
确定了CATALINA_HOME的值即已经确定了catalina.bat。接下去是接受参数,在启动时经常会附带一些命令参数,startup.bat通过以下程序完成对参数的收集。
********************************************************************************************
set CMD_LINE_ARGS=
:setArgs
if ""%1""=="""" goto doneSetArgs     
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1   //将参数组成一行,接在后面
shift
goto setArgs
:doneSetArgs
********************************************************************************************
首先把CMD_LINE_ARGS环境变量设置为空。首先判断第一个参数是否为空,为空则表示没有参数,直接跳到doneSetArgs位置,如果第一个 参数不为空,则把第一个参数赋给CMD_LINE_ARGS,shift命令的作用是把参数前移一位,这时%1代表的就是原来第二个参数,shift后又 跳到setArgs位置,此时判断的是第二个参数,如果不为空则把参数追加到CMD_LINE_ARGS。以此类推,把参数一个个前移,直到%1为空,则 表示全部参数都已经收集完。

call "%EXECUTABLE%" start %CMD_LINE_ARGS%,这条命令是把刚刚收集好的所有参数CMD_LINE_ARGS作为参数,调用执行catalina.bat批处理。



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务