一、Tomcat服务器
1.1、Tomcat端口配置
Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件。
如果想修改Tomcat服务器的启动端口,则可以在server.xml配置文件中的Connector节点进行的端口修改
1、端口修改
访问tomcat服务器:http://localhost:8080,其中8080表示端口.localhost是域名:访问本机:127.0.0.1.
例如:将Tomcat服务器的启动端口由默认的8080改成8081端口
a) Tomcat服务器启动端口默认配置
b) 将Tomcat服务器启动端口修改成8081端口
端口修改完成后必须重启Tomcat服务器生效。访问Tomcat主页可使用
http://localhost:8081/
2、端口占用和安装目录
- netstat -ano命令.查看占用端口的进程pid,再用任务管理器关闭
Catalina_Home:用于指定tomcat的安装目录.
注:这个环境变量是针对多个tomcat服务器的识别,配置过所指定的目录会被运行,一般不推荐配置.
3、目录结构
1.2、Tomcat虚拟目录的映射
Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。
虚拟目录的映射方式有很多种:
1、虚拟目录的映射方式一:在server.xml文件的host元素中配置
找到server.xml文件的host元素,如下图所示:
JavaWebApp这个虚拟目录是由Tomcat服务器管理的,JavaWebApp是自定义不存在的目录,所以称之为"虚拟目录"。
其中,Context表示上下文,代表的就是一个JavaWeb应用,Context元素有两个属性,
- path:用来配置虚似目录,必须以"/"开头。
- docBase:配置此虚似目录对应着硬盘上的Web应用所在目录。
使用浏览器访问"/JavaWebApp"这个虚拟目录下的1.jsp这个web资源,访问结果如下:
http://localhost:8080/JavaWebApp/hello.html
注意:在Tomcat6之后中,不再建议在server.xml文件中使用配置context元素的方式来添加虚拟目录的映射,
因为每次修改server.xml文件后,Tomcat服务器就必须要重新启动后才能重新加载server.xml文件。
2、虚拟目录的映射方式二:让tomcat服务器自动映射
tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。换句话说,
tomcat服务器webapps目录中的web应用,外界可以直接访问。
例如:把F盘下的JavaWebDemoProject这个JavaWeb应用直接copy到tomcat服务器webapps目录中,如下图所示:
此时Tomcat服务器就会自动为JavaWebDemoProject这个JavaWeb应用映射一个同名的虚拟目录"/JavaWebDemoProject",
然后就可以使用浏览器访问这个JavaWeb应用的资源了,如下图所示:
3、虚拟目录的映射方式三
在tomcat服务器的\conf\Catalina\localhost目录下添加一个以xml作为扩展名的文件,xml文件的名字可以任意。
Context元素的path属性是用来配置虚似目录的名称的,所以虚似目录的名称就是这个xml文件的名称。
$CATALINA_BASE
指的就是tomcat服务器根目录,[enginename]
指的是Tomcat服务器使用的引擎名称,Tomcat使用的引擎是Catalina
在aa.xml文件中添加Context元素映射JavaWeb应用,代码如下
<Context docBase="F:\JavaWebDemoProject"/>
注意:在Context元素中并没有指明path属性来设置虚拟目录的名称,那么"F:\JavaWebDemoProject"映射的虚拟目录就是当前正在编辑的这个xml文件的名称aa。
使用这种方式映射虚拟目录的最大好处是修改了配置文件后不用重启Tomcat服务器
1.3、浏览器和服务器交互
当我们打在浏览器的地址栏中输入URL地址去访问服务器上web资源的过程中,浏览器和服务器都做了什么操作呢?
1) 浏览器根据主机名"www.gacl.cn"去操作系统的Hosts文件中查找主机名对应的IP地址。
2) 浏览器如果在操作系统的Hosts文件中没有找到对应的IP地址,就去互联网上的DNS服务器上查找"www.gacl.cn"这台主机对应的IP地址。
3) 浏览器查找到"www.gacl.cn"这台主机对应的IP地址后,就使用IP地址连接到Web服务器。
4) 浏览器连接到web服务器后,就使用http协议向服务器发送请求,发送请求的过程中,浏览器会向Web服务器以Stream(流)的形式传输数据,
告诉Web服务器要访问服务器里面的哪个Web应用下的Web资源,如下图所示:
- GET:告诉Web服务器,浏览器是以GET的方式向服务器发请求。
- /JavaWebDemo1/1.jsp:告诉Web服务器,浏览器要访问JavaWebDemo1应用里面的1.jsp这个Web资源。
- HTTP/1.1:告诉Web服务器,浏览器是以HTTP协议请求的,使用的是1.1的版本。
5、浏览器做完上面4步工作后,就开始等待,等待Web服务器把自己想要访问的1.jsp这个Web资源传输给它。
6、服务器接收到浏览器传输的数据后,开始解析接收到的数据,服务器解析"GET /JavaWebDemo1/1.jsp HTTP/1.1"里面的内容时知道客户端浏览器要
访问的是JavaWebDemo1应用里面的1.jsp这个Web资源,然后服务器就去读取1.jsp这个Web资源里面的内容,
将读到的内容再以Stream(流)的形式传输给浏览器,如下图所示:
7、浏览器拿到服务器传输给它的数据之后,就可以把数据展现给用户看了,如下图所示:
1.4、JavaWeb应用组成结构
开发JavaWeb应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错
WebRoot - Web应用所在目录,一般情况下虚拟目录要配置到此文件夹当中。
┝WEB-INF:此文件夹必须位于WebRoot文件夹里面,而且必须以这样的形式去命名,字母都要大写。
┝web.xml:配置文件,有格式要求,此文件必须以这样的形式去命名,并且必须放置到WEB-INF文件夹中。
web.xml的格式可以直接从Tomcat中参考得到:找到Tomcat目录下的webapps\ROOT\WEB-INF这个目录下的web.xml文件,
把这个文件拷贝到我们新建的WEB-INF文件夹中,并修改这个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_2_5.xsd" version="2.5" metadata-complete="true"> <display-name>Welcome to Tomcat</display-name> <description> Welcome to Tomcat </description> </web-app>
1.5、打包JavaWeb应用
在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法只需要在dos下输入jar即可浏览。
将JavaWeb应用打包成一个war包,然后将这个war包放到Tomcat服务器的webapps目录下,当Tomcat服务器启动时,就会自动将webapps目录下的war包解压。
1.6、Tomcat体系结构
Tomcat服务器的启动是基于一个server.xml文件的,Tomcat启动的时候首先会启动一个Server,Server里面就会启动Service,
Service里面就会启动多个"Connector(连接器)",每一个连接器都在等待客户机的连接,当有用户使用浏览器去访问服务器上面
的web资源时,首先是连接到Connector(连接器),Connector(连接器)是不处理用户的请求的,而是将用户的请求交给一个Engine(引擎)
去处理,Engine(引擎)接收到请求后就会解析用户想要访问的Host,然后将请求交给相应的Host,Host收到请求后就会解析出用户想要
访问这个Host下面的哪一个Web应用,一个web应用对应一个Context。