JavaWeb-Tomcat服务器学习1

2019-12-30  本文已影响0人  Tian_Peng

原文链接:http://www.cnblogs.com/xdp-gacl/p/3734395.html

Tomcat服务端口配置

Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件。
如果想修改Tomcat服务器的启动端口,则可以在server.xml配置文件中的Connector节点进行的端口修改
Tomcat服务器启动端口默认配置:

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

将Tomcat服务器启动端口修改成8081端口

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

这样就把原来默认Tomcat默认的的8080端口改成了8081端口了,需要注意的是,一旦服务器中的*.xml文件改变了,则Tomcat服务器就必须重新启动,重新启动之后将重新读取新的配置信息。因为已经在server.xml文件中将Tomcat的启动端口修改成了8081,所以Tomcat服务器启动时就以8081端口启动了,如下图所示:

访问Tomcat服务器也必须以新的访问端口去访问:http://localhost:8081/,如下图所示:

Tomcat虚拟目录映射

Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。
那么在Tomcat服务器中,如何进行虚拟目录的映射呢?总共有如下的几种方式:

<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 &quot;%r&quot; %s %b" />

</Host>

<Host></Host>这对标签加上<Context path="/JavaWebApp" docBase="F:\JavaWebDemoProject" />即可将在F盘下的JavaWebDemoProject这个JavaWeb应用映射到JavaWebApp这个虚拟目录上,JavaWebApp这个虚拟目录是由Tomcat服务器管理的,JavaWebApp是一个硬盘上不存在的目录,是我们自己随便写的一个目录,也就是虚拟的一个目录,所以称之为"虚拟目录",代码如下:

<Host name="localhost"  appBase="webapps"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">

      <Context path="/JavaWebApp" docBase="F:\JavaWebDemoProject" />
</Host>

其中,Context表示上下文,代表的就是一个JavaWeb应用,Context元素有两个属性:
path:用来配置虚似目录,必须以"/"开头。
docBase:配置此虚似目录对应着硬盘上的Web应用所在目录。

使用浏览器访问"/JavaWebApp"这个虚拟目录下的1.jsp这个web资源,访问结果如下:

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

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

在aa.xml文件中添加Context元素映射JavaWeb应用,代码如下:

 <Context docBase="F:\JavaWebDemoProject" />

注意:在Context元素中并没有指明path属性来设置虚拟目录的名称,那么"F:\JavaWebDemoProject"映射的虚拟目录名称是神马呢,就是当前正在编辑的这个xml文件的名称aa。

使用这种方式映射虚拟目录的最大好处是修改了配置文件后不用重启Tomcat服务器,比如将aa.xml修改成bb.xml,Tomcat服务器会自动Undeploying context [/aa],然后自动信息: Deploying configuration descriptor D:\apache-tomcat-7.0.53\conf\Catalina\localhost\bb.xml

Tomcat服务器配置虚拟主机

配置虚似主机就是配置一个网站。
在Tomcat服务器配置一个虚拟主机(网站),需要修改conf文件夹下的server.xml这个配置文件,使用Host元素进行配置,打开server.xml,可以看到Tomcat服务器自带的一个名称为localhost的虚拟主机(网站),如下所示:

<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 &quot;%r&quot; %s %b" />

</Host>

平时我们将开发好的JavaWeb应用放到webapps文件夹下,然后就可以使用"http://localhost:端口号/JavaWebAppName"的方式去访问了,其实访问的就是name是"localhost"的那台虚拟主机(Host),这台虚拟主机管理webapps文件夹下的所有web应用。

例如:http://localhost:8080/JavaWebDemoProject/1.jsp,这个URL地址访问的就是名称是localhost的那台虚拟主机下的JavaWebDemoProject这个应用里面的1.jsp这个web资源。

我们可以使用如下的方式配置一个虚拟主机,例如:

<Host name="www.gacl.cn" appBase="F:\JavaWebApps">
     
</Host>

这里我们新配置一个虚拟主机,虚拟主机的name是"www.gacl.cn",虚拟主机"www.gacl.cn"现在管理着JavaWebApps文件夹下的所有web应用,平时我们在互联网上使用域名"www.baidu.com"访问百度的网站时,其实就是在访问一个名称是"www.baidu.com"的虚拟主机,所以当我们要访问name是"www.gacl.cn"的这个虚拟主机时,就可以使用"域名(www.gacl.cn)"去访问,注意一下appBase="F:\JavaWebApps",这里的JavaWebApps文件夹代表的不是一个项目的根目录,而是一个存放了一个或者多个JavaWeb应用的文件夹,如下图所示:

就好像是Tomcat服务器的webapps文件夹一样,里面存放了很多的JavaWeb应用

windows系统中注册域名

配置的主机(网站)要想通过域名被外部访问,必须在DNS服务器或windows系统中注册访问网站时使用的域名,找到"C:\Windows\System32\drivers\etc"目录下的hosts文件,如下图所示:

编辑这个文件,将新添加的网站的域名和IP地址绑定在一起,这样我们就可以在浏览器中使用www.gacl.cn这个域名去访问name是www.gacl.cn那个虚拟主机里面管理的那些web应用了

使用浏览器通过域名"www.gacl.cn"访问"www.gacl.cn"这个虚拟主机下的JavaWebDemo1这个web应用下的1.jsp这个web资源,"www.gacl.cn"这个虚拟主机开放了一个8080端口,用户只能通过这个8080端口去访问JavaWebDemo1这个web应用下的1.jsp这个web资源

浏览器与服务器交互的过程

当我们打开浏览器,在浏览器的地址栏中输入URL地址"http://www.gacl.cn:8080/JavaWebDemo1/1.jsp"去访问服务器上的1.jsp这个web资源的过程中,浏览器和服务器都做了神马操作呢,我们是怎么在浏览器里面看到1.jsp这个web资源里面的内容的呢?

浏览器和服务器做了以下几个操作:

这就是浏览器向Web服务器发请求时向服务器传输的数据,解释一下GET /JavaWebDemo1/1.jsp HTTP/1.1这里面的内容,
GET:告诉Web服务器,浏览器是以GET的方式向服务器发请求。
/JavaWebDemo1/1.jsp:告诉Web服务器,浏览器要访问JavaWebDemo1应用里面的1.jsp这个Web资源。
HTTP/1.1:告诉Web服务器,浏览器是以HTTP协议请求的,使用的是1.1的版本。

这个就是Web服务器传输给浏览器的数据。

看到的这个"JavaWebDemo1"就是浏览器解析服务器发送回来的数据后的效果

服务器发送回来的数据:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 102
Date: Mon, 19 May 2014 14:25:14 GMT

<html>
     <head>
         <title>JavaWebDemo1</title>
     </head>
     <body>
         JavaWebDemo1
 
     </body>
</html>

这就是浏览器和服务器的交互过程。

上一篇 下一篇

猜你喜欢

热点阅读