我是靠谱客的博主 迷你故事,最近开发中收集的这篇文章主要介绍JavaWeb学习总结(四)---Tomcat服务器的学习和总结(一)一、 基本介绍Tomcat的目录结构分析和了解:二、 Tomcat服务器端口的配置三、Tomcat服务器虚拟目录的映射方式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

日期: 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 WorkJava SourceTestTomcatDemo" />
即可将在
E 盘下的E:Java WorkJava SourceTestTomcatDemo这个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 WorkJava SourceTestTomcatDemo" />
      </Host>
其中,Context表示上下文,代表的就是一个JavaWeb应用,Context元素有两个属性,
   .path:用来配置虚似目录,必须以"/"开头。
   Ⅱ.docBase:配置此虚似目录对应着硬盘上的Web应用所在目录。
   使用浏览器访问"/JavaWebApp"这个虚拟目录下的index.jsp这个web资源,访问结果如下:

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

1.jsp可以正常访问,这说明我们已经成功地将将在F盘下的TestTomcatDemo这个JavaWeb应用映射到JavaWebApp这个虚拟目录上了,访问"/JavaWebApp/index.jsp"就相当于访问"E:Java WorkJava SourceTestTomcatDemoindex.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 WorkJava SourceTestTomcatDemo这个JavaWeb应用直接copy到tomcat服务器webapps目录中,如下图所示:

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

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

重新启动Tomcat7验证测试:

启动成功!



最后

以上就是迷你故事为你收集整理的JavaWeb学习总结(四)---Tomcat服务器的学习和总结(一)一、 基本介绍Tomcat的目录结构分析和了解:二、 Tomcat服务器端口的配置三、Tomcat服务器虚拟目录的映射方式的全部内容,希望文章能够帮你解决JavaWeb学习总结(四)---Tomcat服务器的学习和总结(一)一、 基本介绍Tomcat的目录结构分析和了解:二、 Tomcat服务器端口的配置三、Tomcat服务器虚拟目录的映射方式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部