JavaWeb学习总结(四)---Tomcat服务器的学习和总结(一)

来源:互联网 发布:mysql update 2张表 编辑:程序博客网 时间:2024/04/20 06:05

日期: 2016-8-27


内容:继续上一篇博文讲解Tomcat服务器的学习和使用。


一、 基本介绍Tomcat的目录结构分析和了解:

1、Tomcat的目录结构:

2、目录结果分析描述:

/bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件
/conf:存放Tomcat服务器的各种全局配置文件,其中包括server.xml(Tomcat的主要配置文件)、tomcat-users.xml和web.xml等配置文件
/lib:存放所需的所有jar文件(整合了原来tomcat5.5中的common/share/server三个目录下的所有jar)
/logs:存放Tomcat执行时的日志文件
/temp:存放Tomcat运行时所产生的临时文件
/webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录(原/server/webapps下的manager等应用也已转移至此)
/work:Tomcat将JSP生成的Servlet源文件和字节码文件放到这个目录下


二、 Tomcat服务器端口的配置

Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件。

如果想修改Tomcat服务器的启动端口,则可以在server.xml配置文件中的Connector节点进行的端口修改

例如:将Tomcat服务器的启动端口由默认的8080改成8081端口

Tomcat服务器启动端口的默认配置:

 <Connector port="8080" protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443" />

启动的时候默认访问的端口就是8080:

在浏览器中访问本机的8080端口测试Tomcat启动:

将Tomcat服务器的端口修改成"8888"端口。

①、首先确定这个端口是不是被其他服务器占用:

没有任何显示,证明这个端口可用,没有被任何服务所占用。

②、修改Tomcat服务器的启动端口为"8888":

<Connector port="8888" protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443" />
注意: 在修改端口之后需要重新启动Tomcat才可以生效。

重启服务器之后再用之前的8080端口登录测试:

从启动的命令行里面显示启动端口已经成功在8888端口生效了。

说明此时的8080端口和Tomcat已经没有半毛钱关系了。假如你不信的话可以查询一下8080这个端口和什么服务有关:

铁证如山啊!8080端口目前处于游离状态。

之后我们再8888这个端口访问Tomcat看看究竟。

有图有真相!证明我是没有吹牛逼的吧!很简单的一步就搞定如何修改Tomcat的启动端口了,哈哈!

这里需要注意的一点是:在\conf目录下的任何一个*.xml文件的改变都必须重启Tomcat服务器之后才可以映射到Tomcat中去的,不要忘记哦!

三、Tomcat服务器虚拟目录的映射方式

这个标题听上去是不是感觉有些高大上呢!其实也不过如此吧。在这里做一个简单的介绍,在我们开发的过程中,Web应用开发好之后,假如想让外界通过互联网访问的话,我们就需要把web应用所在的目录交给web服务器去进行管理,这个过程就称作虚拟目录的映射。在Tomcat服务器中虚拟目录的映射总共有以下几种方式:


1、虚拟目录的映射方式一:在server.xml文件的host元素中配置。

找到server.xml文件的host元素,如下图所示:

<Host name="localhost"  appBase="webapps"            unpackWARs="true" autoDeploy="true">        <!-- SingleSignOn valve, share authentication between web applications             Documentation at: /docs/config/valve.html -->        <!--        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />        -->        <!-- Access log processes all example.             Documentation at: /docs/config/valve.html             Note: The pattern used is equivalent to using pattern="common" -->        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"               prefix="localhost_access_log." suffix=".txt"               pattern="%h %l %u %t "%r" %s %b" />      </Host>
在<Host></Host>这对标签加上<Context path="/JavaWebApp" docBase="E:\Java Work\Java Source\TestTomcatDemo" />
即可将在
E盘下的E:\Java Work\Java Source\TestTomcatDemo这个JavaWeb应用映射到JavaWebApp这个虚拟目录上,JavaWebApp
这个虚拟目录是由Tomcat服务器管理的,JavaWebApp是一个硬盘上不存在的目录,是我们自己随便写的
一个目录,也就是虚拟的一个目录,所以称之为"虚拟目录",代码如下:

  <Host name="localhost"  appBase="webapps"            unpackWARs="true" autoDeploy="true"<span style="white-space:pre"></span>xmlValidation="false" xmlNamespaceAware="false"<span style="white-space:pre"></span>>        <!-- SingleSignOn valve, share authentication between web applications             Documentation at: /docs/config/valve.html -->        <!--        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />        -->        <!-- Access log processes all example.             Documentation at: /docs/config/valve.html             Note: The pattern used is equivalent to using pattern="common" --><span style="white-space:pre"></span><Context path="/JavaWebApp" docBase="E:\Java Work\Java Source\TestTomcatDemo" />      </Host>
其中,Context表示上下文,代表的就是一个JavaWeb应用,Context元素有两个属性,
   .path:用来配置虚似目录,必须以"/"开头。
   Ⅱ.docBase:配置此虚似目录对应着硬盘上的Web应用所在目录。
   使用浏览器访问"/JavaWebApp"这个虚拟目录下的index.jsp这个web资源,访问结果如下:

将修改保存之后启动Tomcat服务器:

1.jsp可以正常访问,这说明我们已经成功地将将在F盘下的TestTomcatDemo这个JavaWeb应用映射到JavaWebApp这个虚拟目录上了,访问"/JavaWebApp/index.jsp"就相当于访问"E:\Java Work\Java Source\TestTomcatDemo\index.jsp"

  注意:在Tomcat6之后中,不再建议在server.xml文件中使用配置context元素的方式来添加虚拟目录的映射,因为每次修改server.xml文件后,Tomcat服务器就必须要重新启动后才能重新加载server.xml文件。在Tomcat服务器的文档http://localhost:8080/docs/config/context.html中有这样的说明:

  It is NOT recommended to place <Context> elements directly in the server.xml file. This is because it makes modifying the Context configuration more invasive since the main conf/server.xml file cannot be reloaded without restarting Tomcat.

Individual Context elements may be explicitly defined:

  • In an individual file at /META-INF/context.xml inside the application files. Optionally (based on the Host's copyXML attribute) this may be copied to $CATALINA_BASE/conf/[enginename]/[hostname]/ and renamed to application's base file name plus a ".xml" extension.
  • In individual files (with a ".xml" extension) in the $CATALINA_BASE/conf/[enginename]/[hostname]/ directory. The context path and version will be derived from the base name of the file (the file name less the .xml extension). This file will always take precedence over any context.xml file packaged in the web application's META-INF directory.
  • Inside a Host element in the main conf/server.xml.
我在访问的时候失败了!估计是由于Tomcat版本比较超前的原因。但是使用Tomcat6之前的版本的时候这样访问应该是没有问题的,在这里就不测试了,希望
有想法的朋友可以自行尝试。

2、虚拟目录的映射方式二:让tomcat服务器自动映射

tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。换句话说,
tomcat服务器webapps目录中的web应用,外界可以直接访问。


例如:把E盘下的E:\Java Work\Java Source\TestTomcatDemo这个JavaWeb应用直接copy到tomcat服务器webapps目录中,如下图所示:

将这个项目直接复制到webapps目录下:

此时Tomcat服务器就会自动为TestTomcatDemo这个JavaWeb应用映射一个同名的虚拟目录"/TestTomcatDemo",然后就可以使用浏览器访问这个JavaWeb应用的资源了,如下图所示:

重新启动Tomcat7验证测试:

启动成功!



0 0
原创粉丝点击