1、JavaWeb简介
javaweb应用由一组servlet、html、类、以及其它可以被绑定的资源构成。它可以在各种供应商提供的实现servlet规范的 Servlet容器中运行。
2、Tomcat简介
tomcat是一个免费的开放源代码的servlet容器,它是apache软件基金会的一个顶级项目,由apache、sun和其他一些公司及个人共同开发而成。
3、Tomcat目录层次结构
本文以apache-tomcat-9.0.6为例进行说明,下载网址:https://tomcat.apache.org/
apache-tomcat-9.0.6\bin:存放启动和关闭tomcat的脚本文件。
apache-tomcat-9.0.6\conf:存放tomcat服务器各种配置文件。
apache-tomcat-9.0.6\lib:存放tomcat服务器和所有web应用程序需要访问的jar包。
apache-tomcat-9.0.6\logs:存放tomcat的日志文件。
apache-tomcat-9.0.6\temp:存放tomcat运行时产生的临时文件。
apache-tomcat-9.0.6\webapps:存放发布的web应用程序。
apache-tomcat-9.0.6\work:存放jsp生成的servlet源文件和字节码文件。
4、部署并启动tomcat服务器
①解压apache-tomcat-9.0.6.zip到一个非中文目录下。
②配置一个环境变量java_home(或jre_home),指向jdk安装的根目录。
③通过双击apache-tomcat-9.0.6\bin目录下的startup.bat,启动服务器。
④可以在浏览器中输入localhost:8080来检验tomcat安装是否正确。
⑤若已经启动了一个tomcat应用,若再启动同一个tomcat应用,会抛出异常:java.net.BindException:Address already in use:JVM_Bind:8080因为端口已经被占用了。
5、修改Tomcat服务器端口号
修改apache-tomcat-9.0.6\conf\server.xml文件,把port的值改为其他的端口号即可。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
6、配置Manager用户名和密码
修改apache-tomcat-9.0.6\conf\tomcat-users.xml文件,添加以下代码(用户名:admin、密码:0000)。
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="0000" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
7、设置外网登录管理Tomcat
修改apache-tomcat-9.0.6\webapps\manager\META-INF\context.xml文件,注释掉以下部分代码。
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
8、设置任意目录下启动Tomcat服务器
①将tomcat的bin目录(如D:\apache-tomcat-9.0.6\bin)添加到环境变量path下,添加成功后, 若在任意目录下通过 startup启动tomcat服务器,会有以下提示:
The CATALINA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
即:要求设置CATALINA_HOME这个环境变量,通过阅读apache-tomcat-9.0.6\bin\startup.bat批处理文件:
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
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
可知CATALINA_HOME环境变量下有一个bin目录,而bin目录又有一个catalina.bat文件,由此可知CATALINA_HOME指向的应该是 tomcat安装的根目录。
②把tomcat的根目录(如D:\apache-tomcat-9.0.6)设为CATALINA_HOME环境变量,此时即可以在任意目录下通过 startup.bat、shutdown.bat启动、关闭tomcat服务器。
9、catalina命令
继续阅读startup.bat文件, 发现启动tomcat服务器的是catalina.bat文件。
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHome
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
rem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec
echo Cannot find "%EXECUTABLE%"
echo This file is needed to run this program
goto end
:okExec
在命令行窗口直接输入catalina,提示如下:
commands:
debug Start Catalina in a debugger
debug -security Debug Catalina with a security manager
jpda start Start Catalina under JPDA debugger
run Start Catalina in the current window
run -security Start in the current window with security manager
start Start Catalina in a separate window
start -security Start in a separate window with security manager
stop Stop Catalina
version What version of tomcat are you running?
catalina 命令有如上的可选参数:
①run:在 catalina 同一个命令行窗口下启动服务器(ctrl+c即可关闭服务器)。
②start:开启一个新窗口启动服务器。
③stop:关闭服务器。