Tomcat学习笔记
1. Tomcat的下载
1.1 点击跳转到Tomcat官方网站
1.2 Tomcat的启动与关闭
2. Tomcat的文件目录结构
- bin 用于存放Tomcat服务器的可执行程序;
- conf 用于存放Tomcat服务器的配置文件;
- lib 用于存放Tomcat服务器的jar包;
- logs 用于存放Tomcat运行时输出的日志信息;
- temp 用于存放Tomcat运行时产生的临时数据;
- webapps 用于存放部署的Web工程;-- 后续Servlet会用到【非常重要】
- work 用于存放Tomcat运行时jsp翻译为Servlet的源码。
2.1 可能存在的问题
- Java环境没有配置;
- 闪退问题:需要配置兼容性;
- 乱码问题:配置文件中设置。
2.2 conf配置文件
-
server.xml可自定义部分
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> -- port: 默认的访问端口。例:http://localhost:8080/ -- protocol:代表http通信协议版本 <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <!--name代表访问ip,appBase代表指定的网站访问路径, unpackWARs代表是否会自动解压war包,autoDeploy代表是否自动发布--> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <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>
-
server.xml文件架构图
1. Server可以有多个service服务; service可以有多个connector;Engine中也可以有多个host,包括一个本地主机localhost和多个虚拟主机;
2. 浏览器使用service中的connector来建立连接;
3. 使用service中的engine来提供具体的服务.
2.3 webapps应用文件夹
-
图中每一个文件夹代表一个应用,总共有5个应用;
作用: webapps主要用来存放应用程序的.当tomcat启动时回去加载webapps下目录下的应用程序,因此,可以文件夹war包jar包发布应用.
-
root目录: 是tomcat默认的启动目录,tomcat的官网首页相关文件就存放在root目录中.
-
问题1:那Tomcat是如何加载webapps下的应用呢?即加载顺序
答:Tomcat加载应用时,即为部署web服务。
-- 1.1 拷贝war包或web应用文件夹到webapps目录下
**问题1.1 **:部署的项目到底放在webapps目录下还是root目录下?或者说两者的区别
答:都可以。不过两者之间存在细微的差别。
区别:
-
webapps目录下:将项目名.war包直接放在webapps目录下,Tomcat加载时,会自动解压,并创建一个项目名.war文件目录。例:nowcoder.war
-
webapps目录下:访问测试:localhost:8080/nowcoder/文件名
-
root目录下:不能将war包或war包解压后的整个压缩文件放进去,应该将解压文件夹里的文件放到root目录下
-
root目录下:访问测试:localhost:8080/文件名 -- 相比于webapps目录下,去掉了**项目名**
-
总结:Tomcat服务器启动时,会先去webapps目录下找项目。如果找到项目,则显示出来;否则,去Root目录下寻找项目。
注意:Root目录下只能存放一个项目;webapps下可以存放多个项目文件,然后根据项目名去寻找
问题1.2:如何修改默认Root目录?
答:打开conf文件夹下的server.xml文件。
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!--添加一行--> <Context path=”" docBase=”zhangsan” debug=”0″ reloadable=”true” /> <!--注释--> 重启Tomcat后,会默认加载zhangsan目录下的文件。
-
3. 如何自定义访问网站
3.1 为什么访问8080会出现相应界面?是否可以更改
答:因端口和主机名的配置。可以进行更改。
3.2 修改访问端口
-- 8080代表默认的访问端口,可以进行修改。若修改成8081端口,8080将无法访问,只有8081可以访问
3.3 修改主机名称
hosts文件存放域名与主机的映射地址,如若修改主机名称,需要同时修改hosts文件的内容
4.高难度面试题
输入一个ip地址后,网站是如何进行访问的?
- 输入一个域名:回车;
- 检查本机的C:WindowsSystem32driversetchosts配置文件下有没有这个域名 映射;
- 有:直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问
- 没有:去DNS服务器寻找,找到的话就返回,找不到就返回找不到。
5. 如何发布一个web网站?
-- 将自己写的网站,放到服务器(Tomcat)指定的web应用的文件夹(webapps)下,(即可以复制 root的文件结构)
-
**★★网站应该有的结构****:【后续java项目结构基于此】
-webapps:Tomcat服务器的web目录 -- Root -- kuangstudy: 网站的目录名 -- WEB-INF -classes: java程序 -lib: web应用所依赖的jar包 -web.xml: 网站配置文件 -- index.html 默认的首页 - static 静态文件资源目录 - css -style.css - js - img - .......