zoukankan      html  css  js  c++  java
  • 咸鱼入门到放弃3--tomcat

    Tomcat学习与使用

    一. Tomcat安装及配置

    二.项目部署(虚拟目录映射)

    Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射

      

    虚拟目录的映射方式一:在server.xml文件的host元素中配置(高版本Tomcat不建议用)

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

      

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

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

    其中,Context表示上下文,代表的就是一个JavaWeb应用,Context元素有两个属性,

      Ⅰ.path:用来配置虚似目录,必须以"/"开头。

      Ⅱ.docBase:配置此虚似目录对应着硬盘上的Web应用所在目录。

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

    即将项目文件放到webapps下

    虚拟目录的映射方式三:定义xml

    在tomcat服务器的confCatalinalocalhost目录下新建一个xml文件,其名称就是context元素的path属性,

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

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

     三.打包javaweb应用

    在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:

     

    执行完之后,就可以得到一个文件,平时开发完JavaWeb应用后,一般都会将JavaWeb应用打包成一个war包,然后将这个war包放到Tomcat服务器的webapps目录下,当Tomcat服务器启动时,就会自动将webapps目录下的war包解压。

    比如现在将放到放到Tomcat服务器的webapps目录下

    Tomcat服务器启动后会自动"Deploying web application",将这个war文件解压缩,如下图所示:

      

    四、Tomcat的体系结构

    Tomcat服务器的启动是基于一个server.xml文件的

    <?xml version='1.0' encoding='utf-8'?>
    <Server port="8005" shutdown="SHUTDOWN">          //启动server                                  
      <Service name="Catalina">                  //启动service
        <Connector port="8080" protocol="HTTP/1.1"       //多个Connector等待连接 
                   connectionTimeout="20000"
                   redirectPort="8443" />
        <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
                   maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                   clientAuth="false" sslProtocol="TLS" 
                   keystoreFile="conf/.keystore" keystorePass="123456"/>
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
        <Engine name="Catalina" defaultHost="localhost">    //将用户请求交给引擎处理
    
          <Host name="localhost"  appBase="webapps"       //引擎解析出想访问的host后交其处理
                unpackWARs="true" autoDeploy="true">
            <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 name="www.gacl.cn" appBase="F:JavaWebApps">  //host解析出用户想访问的web应用,一个应用对应一个context
            <Context path="" docBase="F:JavaWebAppsJavaWebDemo1"/>
          </Host>
    
        </Engine>
      </Service>
    </Server>

     五.互联网上的加密原理

    Tomcat的connector分为加密连接器http连接与非加密连接器https连接。默认8080端口为非加密连接器

    拓展:对称加密与非对称加密,对称加密即加密解密使用相同的加密算法,非对称加密即加密解密密钥不同

    非对称加密工作原理

      1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。
      2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
      3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。
      4.A将这个消息发给B(已经用B的公钥加密消息)。
      5.B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥
     
    非对称性加密存在一个问题:A想向B发数据,A如何确定拿到的公钥一定是B发的呢?存在公钥被截获的问题。那么如何解决这个问题呢?只能靠一个第三方机构(CA机构,即证书授权中心(Certificate Authority ),或称证书授权机构)来担保。A想向B发数据,B首先将公钥发给CA机构,CA机构拿到B的公钥后跑到B的家里问:这是你发的公钥吗?B确认过后说是:没错,是我发的!那么此时CA机构就会为B的公钥做担保,生成一份数字证书给B,数字证书包含了CA的担保认证签名和B的公钥,B拿到CA的这份数字证书后,就发给A,A拿到数字证书后,看到上面有CA的签名,就可以确定当前拿到的公钥是B发的,那么就可以放心大胆地使用公钥加密数据,然后发给B了。
     
     
  • 相关阅读:
    poj3083(Children of the Candy Corn)
    poj3278(Catch That Cow)
    poj2996(Help Me with the Game)
    poj2993(Emag eht htiw Em Pleh)
    js 对多sheet Excel赋值操作
    学习进度总结(三)
    学习进度总结(二)
    学习进度总结(一)
    《人月神话》阅读笔记(1)
    Android studio的安装与使用
  • 原文地址:https://www.cnblogs.com/lvoooop/p/10641119.html
Copyright © 2011-2022 走看看