咸鱼入门到放弃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了。
 
 
原文地址:https://www.cnblogs.com/lvoooop/p/10641119.html