tomcat 目录分解和手写servlet
分解tomcat 各个目录
总览
bin 目录
.bat 结尾的是windows下的批处理文件;.sh是linux 下的批处理shell 文件
说明tomcat 具有操作系统兼容性
conf目录
tomcat 的配置目录
比较关键的是server.xml 文件,该文件指定了一些端口,包括默认的8080端口
server.xml 文件
lib 目录
lib 目录存放了tomcat 提供的一些jar 包
常用的有 servlet-api.jar,提供了servlet 接口。
logs
tomcat 存放日志的地方
tomcat 每次启动或关闭都将日志写到该目录下
temp
临时目录
webapps 目录
网站资源目录,重要
该目录下的每一个文件夹都是一个网站资源。
my 是我自己写,后面演示怎么在my中手写servlet。
ROOT 是tomcat 默认的网站,意思是,当在浏览器 输入
http://localhost:8080
的时候,自动访问ROOT 下的网站资源(等价于http://localhost:8080/ROOT
)。如果想访问我自己写的 my 网站,则应输入http://localhost:8080/my
补充一点:如果直接访问
http://localhost:8080/my
,一般会返回网站的首页资源(index.html 或index.jsp)
接下来分析 这个网站目录 的结构
小技巧:先打开网站目录,在上方地址栏输出cmd ,回车。在dos 下输入
tree >tree.txt /f
,即可将该目录的文件结构输出到 txt 文件中
可以看出,网站目录下 有 WEB-INF
目录,该目录下,有classes
目录(编译之后的.class 文件) 和lib
(.class 文件依赖的jar 包)目录,还有一个web.xml
(servlet 的配置文件)文件。另外网站的静态资源,直接放在该网站的根目录下即可。
科普:什么是根目录?根目录是一个相对的概念。一般我们所说的根目录,如果没特殊说明,默认是说windows 下的 C盘 D盘这些盘符,或 linux 系统下的 / 根目录。
还有一个情况就是,这里举例说明:比如D盘下有一个hello.java 文件,还有一个文件夹 aaa,该文件夹里有一个文件hi.java 和 子文件夹bbb。 我们称 hello.java 在D盘的根目录下面,称hi.java 在aaa 的根目录下面。怎么样?有点感觉了吧。在某文件夹下面,其实就是在该文件夹的根目录下面。aaa是D盘的一级目录,bbb是D盘的二级目录。
另外补充一点:
java 源文件,即.java 文件,其实是不重要的。我只需要.class 文件。
重要的是编译后的.class 文件,因为这些.class 文件,才会被加载进jvm 虚拟机中运行。
说到这,我们回顾一下在IDEA 中开发web 项目的架构。
该web 项目中,只有out 目录是发布后的网站资源,其他的不重要。
进一步将,out 目录下的 artifacts目录就是真正的网站资源。
work
tomcat 的工作目录,跟网页的缓存有关
在webapps 下手写servlet
回顾IDEA 开发web 项目的流程
-
添加web 支持框架
-
在WEB-INF 目录下,建一个lib 目录,存放jar 包。如果有servlet,就在web.xml 文件中注册servlet。