javaweb-day04-5(javaWeb开发入门 - tomcat体系架构、配置https加密连接器)

打包Web应用为war文件:

jar  -cvf    aa.war   news

将war文件拷贝到tomcat的webapps目录下,会自动解压。


配context元素的reloadable元素,让tomcat自动加载更新后的web应用:

<Context  path="xxx"  docBase="c:\news"  reloadable="true" />

开发里面不建议用这个元素,一般情况下等全部改完再一起发布。


Tomcat体系架构

  • tomcat 的体系结构在 server.xml 文件中就能体现出来:
  • <?xml version='1.0' encoding='utf-8'?>
    
    <Server port="8005" shutdown="SHUTDOWN">   <!--启动服务器,占用8005端口-->
    
      <Service name="Catalina">   <!--启动一个服务,服务的名称是“Catalina”-->
    
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />         <!--启动一个客户机连接器,连接器收到请求。这个连接器是个没有加密的连接器-->
        
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />  
    
        <Engine name="Catalina" defaultHost="localhost">  <!--把请求交给引擎-->
    
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">      
          </Host>
          <Host name="www.mengmei.com"  appBase="c:\mengmei">             <!--引擎会找到客户机要请求的主机-->
                <Context path="" docBase="c:\mengmei\mail"></Context>     <!--并找到客户机要访问的web应用-->
          </Host>
    
        </Engine>
      </Service>
    </Server>
    


配置https连接器

  • 公钥、私钥加密
    • 原理:A向B发送数据的时候,先向B要一个密钥用来加密数据。B使用算法生成一个公钥和一个私钥,用公钥加密的数据只能用私钥来解密。这样B把公钥发给A,A把数据用公钥加密后发送给B,然后B用私钥解密数据。
      • 这种加密方式的风险:可能有C将B发送给A的公钥截获,把自己生成的公钥发给A,然后再将A用此公钥加密的数据截获,用自己的私钥解密,来窃取数据。然后C再另拟一份数据用B的公钥加密后发送给B,进行捣乱。
      • 那么公钥、私钥加密就出现了这样一个问题,A怎么确认这个公钥就是B发过来的。
    • 总结:密码学讨论到最后,没有安全性可言。只能用一个机构来担保。有CA这么一个机构,CA为B的公钥担保就会发给B一份数字证书,这个证书包括CA的签名和B的公钥。当A收到公钥后看到有CA的担保,就可以放心大胆的用这个公钥了。如果CA这个机构也被第三方攻陷了,那就都完蛋了。
  • 为服务器生成数字证书:keytool -genkey -alias tomcat -keyalg RSA
    • 生成的证书会放在:终端显示的当前目录下,是一个名为.keystore的密钥库文件。并把密钥库文件剪切到Tomcat的conf目录下。
  • 配置密钥库路径和密码到Tomcat服务器:在apache-tomcat-7.0.42\conf\server.xml文件中配置
    • <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    •                maxThreads="150" scheme="https" secure="true"
    •                clientAuth="false" sslProtocol="TLS" keystoreFile="conf\.keystore" keystorePass="123456"/>
    • 如果 keystoreFile 和 keystorePass 这两个属性名记不住的话,去【http://localhost:8080 - Documentation - Reference - Configuration - Connectors - HTTP - SSL Support 的 Attribute表格】中查找。
    • 配置后保存server.xml文件,重启服务器。
  • 浏览器安全访问服务器的方式:https://localhost:8443


Tomcat服务器的管理平台

  • http://localhost:8080/    -    Manager App  -   需要用户名和密码。
  • apache-tomcat-7.0.42\conf\tomcat-users.xml 文件 可以配置登录管理平台的用户名密码。

<?xml version='1.0' encoding='utf-8'?>

<tomcat-users>

  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>

</tomcat-users>

  • 默认配了三个用户名和密码都是加了注释的,像这样把注释打开。但是这时候这几个用户没有管理员权限,我们定义了管理员权限,并为第一个用户设置了管理员权限:

<tomcat-users>

  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager-gui"/>
  <user username="tomcat" password="tomcat" roles="tomcat,manager-gui"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>

</tomcat-users>

这样配置后,保存 tomcat-users.xml 文件,并重启服务器,就可以使用了。


  • 想访问   http://localhost:8080/    -    Host Manager   主机管理,再为用户加个 admin-gui 权限:

<tomcat-users>

  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager-gui"/>
  <role rolename="admin-gui"/>
  <user username="tomcat" password="tomcat" roles="tomcat,manager-gui,admin-gui"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>

</tomcat-users>

这样 username="tomcat"  password="tomcat" 就既能访问 Manager App 又能访问 Host Manager 了。



web应用的开发前景

软件开发的两种架构C/S  和 B/S :

  • C/S 架构是 客户机 - 服务器 架构:
  • B/S 架构是典型的 浏览器-服务器 架构:



context元素常用属性










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值