问题记录
1.访问不到tomcat下面webapps下面的html文件?
tomcat启动了,webapps里面有个a.html文件,,浏览器url是http://localhost:8080/a.html.但是报404错误。这可能 是那些原因引起的。
解决方法:http://localhost:8080/a.html 少了项目名称 http://localhost:8080/项目名称/a.html
·bin //存放Tomcat的命令脚本文件
·conf //存放Tomcat服务器的各种配置文件,最主要是server.xml
·lib //存放Tomcat服务器支撑jar包
·logs //存放日志文件
·temp //存放临时文件
·webapps //web应用所在目录,外界访问web资源的存放目录
·work //Tomcat的工作目录
配置文件结构
从高到低分为: Server -Service --Connector --Engine ---Host ----Context
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN"> <GlobalNamingResources> </GlobalNamingResources> <Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> </Host> </Engine>
</Service>
<Service name="Catalina2">
……
</Service>
</Server>
server下面可以有多个service,用于配置不同监听端口
service下面可以有多个Host,用于配置该端口下的不同域名
Host里可以包含多个Context,用于配置该端口该域名下的不同虚拟目录
以下是tomcat的配置文件 server.xml (多余注释已删除)
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN"> #监听关闭命令的端口 <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <!-- Security listener. Documentation at /docs/config/listeners.html <Listener className="org.apache.catalina.security.SecurityListener" /> --> <!--APR library loader. Documentation at /docs/apr.html --> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <!-- Prevent memory leaks due to use of particular java/javax APIs--> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources> #具体SERVICE部分都能使用的公共变量定义 <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources>
# 一个服务service可以包括一个或多个连接,这些连接共享一个单一的容器;
# 注意服务service本身并不是容器,
<Service name="Catalina"> #服务名
<Connector port="8080" protocol="HTTP/1.1" #默认连接端口8080 、协议、超时、ssl重定向端口
connectionTimeout="20000"
redirectPort="8443" /> #默认加密连接在 8443
#定向包协议默认8009端口,如加密转发8443 负责和其他的HTTP服务器建立连接
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost"> #Engine处理引擎,接收和处理来自Connector的请求
#Realm 表示存放用户名,密码及role的数据库
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
#name是虚拟主机名,appBase 应用程序基本目录,即存放应用程序的目录;
#unpackWARs 自动解压war包。true值时,appdase下打成war包的项目会在tomcat启动时自动解压
#autoDeploy是否设置程序自动装载
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
#valve 记录应用程序的访问信息,directory指定log文件存放的位置,prefix 文件名,pattern 记录格式
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>