1.tomcat的目录结构
bin ---- ---- 启动和关闭需要的bat文件所在的目录conf ------ 配置目录
lib --- tomcat运行时需要的jar包所在的目录
logs --- 日志文件所在的目录
temp --- tomcat运行时产生的临时文件存放的目录,不需要我们管理
webapps --- 开发中最常用的目录,web应用放置到此目录下浏览器可以直接访问
work --- 工作目录,tomcat运行时产生的工作文件存放在这个目录中
2.虚拟主机/web应用
虚拟主机:
一个tomcat可以认为是一台真实主机.在一台真实主机中可以配置多个站点,这些站点在访问者看来访问他们就像在访问各自独立的主机一样,所以我们可以认为这些站点都运行在tomcat这台真实主机当中的各自的虚拟主机当中,一个网站就可以认为是一个虚拟主机。web应用:
一个虚拟主机中会有很多的web资源,但是web资源不能直接交给虚拟主机管理,需要按照一定方式组织成web应用虚拟主机才能使用.一般来说我们会按照功能将某一功能相关的所有的web资源组织成一个web应用后再交给虚拟主机.
web应用目录结构: 如果目录结构不合法可能会出现各种奇葩的问题.
news
|
|--静态资源和JSP文件都可以直接放置在web应用的目录下,直接放在web应用下的内容,浏览器可以直接访问到
|
|--WEB-INF -- 可以没有,但是最好有,如果有则一定要保证他的目录结构是完整的.放置在WEB-INF目录下的所有资源浏览器没有办法直接进 行访问
|--classes -- 动态web资源运行时的class文件要放在这个目录下
|--lib -- 动态web资源运行时所依赖的jar包要放在这个目录下
|--web.xml -- 整个web应用的配置文件,配置主页/Servlet的映射/过滤器监听器的配置都需要依赖这个文件进行
注意:WEB-INF文件夹可以没有,一旦有了,其中就必须包含上述三个文件(夹)!!
web.xml的写法:仿照conf目录下的web.xml文件写法:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<welcome-file-list>
<welcome-file>newssb.html</welcome-file>
</welcome-file-list>
</web-app>
在浏览器中直接输入:http://localhost:8080/ 即可访问。(在此之前已经将该web应用设置为默认web应用)
配置虚拟主机:在conf/server.xml中<Engin>标签下配置<Host>标签就可以为tomcat增加一台虚拟主机了,例如:
<Hostname="www.baidu.com" appBase="E:\mywebapps"></Host>
appBase -- 虚拟主机管理的目录,放置在这个目录下的web应用当前虚拟主机可以自动加载
*由于浏览器访问地址时,需要将地址翻译成对应的ip才能找到服务器,这其中翻译的过程是由dns服务器来实现的.我们在做实验的时候没有办法去修改dns服务器,此时可以使用hosts文件模拟dns的功能,从而完成实验.
*缺省虚拟主机:如果来访者是通过ip来访问,这个时候服务器无法辨别当前要访问的是哪台虚拟主机中的资源,此时访问缺省虚拟主机.缺省虚拟主机可以在server.xml中engin标签上通过defaultHost属性进行配置.
为虚拟主机配置web应用(三种方法)
(1)在Server.xml的<Host>标签中,配置<Context>标签,就可以为该虚拟主机配置一个web应用了
示例:<Context path="/news" docBase="E:\news">
path:如果将path设置为空则这个web应用为缺省web应用docBase:web应用的真实路径,
这种配置方式需要重启服务器,不推荐。
(2)在tomcat/conf/[Engin]/[Host]/(实际就是指tomcat/conf/Catalina/localhost/,参照conf目录下的server.xml目录查看[Engin]的名字)在这个目录下写一个xml文件,其中xml文件的名字就是虚拟路径,在这个xml中可以配置<Context>标签,其中配置真实路径。
文件名为:newsdwy.xml
<?xml version="1.0" encoding="utf-8"?>
<Context docBase="E:\news01"/>
访问:http://localhost:8080/newsdwy/newssb.html
如果所配置的虚拟路径中有/由于文件名中不允许包含 / 需要用 # 替代。
只要将文件名设置为ROOT.xml则这个xml描述的web应用就成为了缺省web应用这种配置方式不需要重启服务器,推荐
只要将web应用文件夹的名称改为ROOT,这个web应用就是缺省web应用
*web应用的虚拟路径映射 -- 就是为web应用的真实存在的路径配置一个浏览器访问的虚拟路径
*配置缺省web应用 -- 默认的web应用,当不写web应用名时就访问这个web应用
3.零散知识
(1)打war包,减少web应用的体积方便传输,并且在虚拟主机管理的目录下(webapps),war默认可以自动解压方法一:敲命令:jar -cvf ROOT.war *
方法二:直接用压缩工具压缩,然后后缀名改成.war即可。
(2)通用Context配置、通用web.xml配置(conf目录下),了解即可。
自己开发的web应用,可以理解为“继承”了conf下面的context.xml和web.xml。这就是为什么自己的web应用可以没有WEB-INF文件夹的原因。
(3)Tomcat服务器的管理平台
===============================================================================================================