【基础系列二十一】--Tomcat基础
Web的概念
定义
1. Web 网页的意思 网络上能够访问到的资源
2. web资源
1. 静态(html)和动态资源(动态生成的网页)
3. Web容器
1. 符合规范的,为Web应用提供了运行环境的组件。
2. 容器封装了浏览器请求和服务器响应的相关信息。
4. 容器分为
1. 只能运行web程序的Web服务器,例如TomCat(支持java和Php)
2. 能运行web程序,还能运行EJB等程序的Web服务器,例如:WebLogic
5. Web应用:
运行在Web容器上,实现完整功能的程序。
Web应用的结构目录:
应用名(自定义)
WEB-INF
web.xml(必须)
classes--放编译后的class文件(可选)
lib--放web应用所需的jar包
tags目录
TomCat下载
1. http://tomcat.apache.org/
2. .zip为压缩版,解压后即可使用。
.exe为安装版,安装后使用。
Tomcat服务器启动不了
可能原因:
1. JDK环境问题
2. 端口被占用
3. TomCat服务器server.xml配置文件出问题
4. 路径安装问题
解决办法:
1. 配置JDK环境变量
2. 看是否已经打开tomcat,或是tomcat在关闭时没有正确的关闭,可以运行shutdown.bat命令,然后再次打。
可以在cmd窗口中使用netstat -ano命令查询出哪个程序占用了端口,根据pid,在任务管理器的服务中找到此pid,结束这个程序后再启动tomcat即可
3. 对TomCat服务器server.xml进行覆盖
4. 查看安装路径是否包含中文或者空格。
TomCat目的结构
bin --- 存放tomcat批处理文件的目录
conf --- 存放tomcat配置文件的目录
lib --- 存放tomcat运行时依赖的jar包
logs --- 存放tomcat运行时产生的日志文件的目录
temp --- 存放tomcat运行时产生的临时文件的目录
webapps(重点) --- 这是和开发人员关系最大的目录,是用来存放web应用的目录,我们开发的web资源最终要保存在这个目录下,外界就可以访问了
work --- 存放tomcat服务器运行时产生的工作文件的目录
修改TomCat默认端口号
1. TomCat默认端口号为8080
1. 访问TomCat主页:localhost:8080
2. 注意更改之后需重新启动服务器就可以生效!!!
<!--这是TomCat默认端口号-->
<!--<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />-->
2. <!--默认端口号改为:80-->:访问Tomcat主页:localhost;
1. 80端口是默认访问端口
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
部署Web应用的三种方式
1.第一种
1. D:\softwore\apache-tomcat-7.0.53\conf-server.xml
2. 在<Host>标签内添加<Context path="" docBase=""/>
1. path属性指定WEB应用的虚拟路径,第一个斜杠可以省略
2. docBase用来指定WEB应用真实路径
3. 注意点这种方式,生效必须重启TomCat服务器
3. 访问:http://localhost/new4/1.html(这种是已经把端口改为80,若没有更改端口,访问http://localhost:8080/new4/1.html)
-
第二种
1. D:\softwore\apache-tomcat-7.0.53\conf\Catalina\localhost目录下添加一个xxx.xml文件 2. 文件的名字就是WEB应用的虚拟路径, 文件中添加内容如下:因为文件名中不能有斜杠,可以用#代替斜杠 1. 比如,我们先创建news2文件夹,在[tomcat]/conf/Catalina/localhost目录下添加一个news2.xml文件, 2. 文件内容如下<Context docBase="C:\Users\tedu\Desktop\news2" /> 3. 注意: 1. 这种情况下不用添加xml声明,解析器可直接解析。 2. TomCat服务器不用重启就能访问 4. 访问方式:http://localhost/new4/1.html
-
第三种
直接将WEB应用放在localhost主机默认管理的目录下即可! 1. 比如,创建news3,并放入[tomcat]/webapps中,即可访问 2. 这里,localhost管理的目录是webapps目录,[tomcat]/conf/server.xml中第124行看到,当然也可以修改,一般都不要动文件夹的名字成为web应用的虚拟路径。 3. 这种方式下是无需重启服务器
-
三种部署Web应用的优先级
1. 第一种>第二种>第三种 1. 即如果第一种方式部署了应用,它的访问权限的优先级最高,其他的部署的Web应用都不会生效。
-
设置默认访问Web应用
三种方式 第一种方式: 1. 直接将WEB应用放在localhost主机默认管理的目录下 2. 将应用名设置为Root 第二种方式: 1. 将应用放在任意位置, 2. 在D:\softwore\apache-tomcat-7.0.53\conf\Catalina\localhost目录下添加一个名为Root.xml文件 3. 文件内容如下<Context docBase="C:\Users\tedu\Desktop\news2" /> 第三种方式 1. 应用方任意位置 2. D:\softwore\apache-tomcat-7.0.53\conf-server.xml 3. 在<Host>标签内添加<Context path="" docBase="C:\Users\tedu\Desktop\news2"/> 1. path属性为空 2. docBase用来指定WEB应用真实路径 3. 注意点这种方式,生效必须重启TomCat服务器 3. 访问:http://localhost/new4/1.html(这种是已经把端口改为80,若没有更改端口,访问http://localhost:8080/new4/1.html)
虚拟主机(重要)
访问www.baidu.com 访问自己本地的web应用
1. 在[tomcat]/conf/server.xml文件的Engine标签内部添加一个Host标签
1. 配置如下:(同时在[tomcat]/目录下创建baidu文件夹,并放入一个web应用)<Host name="www.baidu.com" appBase="baidu"></Host>
2. 在TomCat目录下创建baidu文件
3. name属性:必须,指定虚拟主机的名字
4. appBase属性:非必须,指定该虚拟主机默认管理的目录
2. 配置DNS服务器中配置主机名和IP地址的映射关系, 但是DNS服务器一般不能修改, 可以通过hosts文件进行模拟。
1. 在下面的路径C:\Windows\System32\drivers\etc中找到hosts文件。
2. 在最后一行加入如下配置:(IP和网址之间是Tab键) 127.0.0.1 www.baidu.com
3. 注意:当可以上网的时候,很有可能你输入的网址不能生效,直接去访问百度去了,这时候需要清dns缓存,打开cmd窗口,输入ipconfig/flushdns,浏览器清缓存再次打开即可
3. 配置默认虚拟主机(可选)
1. 在[tomcat]/conf/server.xml文件的Engine标签上属性defaultHost,可以通过此属性改变默认虚拟主机。
1. 比如(默认是localhost)<Engine name="Catalina" defaultHost="www.baidu.com">
本地打war包的两种方式
1. 两种方式
1. cmd窗口,进入web应用根目录,使用jar cvf xxxx.war *命令
C:\Users\tarena>d:
D:\>cd D:\softwore\apache-tomcat-7.0.53\baidu\new4
D:\softwore\apache-tomcat-7.0.53\baidu\new4>jar cvf new4.war *
已添加清单
正在添加: 1.html(输入 = 130) (输出 = 100)(压缩了 23%)
正在添加: WEB-INF/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: WEB-INF/web.xml(输入 = 409) (输出 = 214)(压缩了 47%)
D:\softwore\apache-tomcat-7.0.53\baidu\new4>
2. 直接把web根目录下的文件全部压缩为xxx.zip--把压缩文件改xxx.war。
通用的web.xml文件
在[tomcat]/conf/目录下的web.xml文件, 是一个通用的web.xml文件, 这个web.xml文件的内容, 将会被所有WEB应用web.xml文件所”继承”。
比如刚安装tomcat的时候,访问localhost直接会进入tomcat主页,而tomcat中WEB-INF下的xml中并未配置,因为继承了通用web.xml