• Tomcat服务器


    Tomcat学习笔记

    1. Tomcat的下载

    1.1 点击跳转到Tomcat官方网站

    1.2 Tomcat的启动与关闭

    2. Tomcat的文件目录结构

    • bin 用于存放Tomcat服务器的可执行程序
    • conf 用于存放Tomcat服务器的配置文件
    • lib 用于存放Tomcat服务器的jar包
    • logs 用于存放Tomcat运行时输出的日志信息
    • temp 用于存放Tomcat运行时产生的临时数据
    • webapps 用于存放部署的Web工程;-- 后续Servlet会用到【非常重要】
    • work 用于存放Tomcat运行时jsp翻译为Servlet的源码

    2.1 可能存在的问题

    1. Java环境没有配置;
    2. 闪退问题:需要配置兼容性;
    3. 乱码问题:配置文件中设置。

    2.2 conf配置文件

    • server.xml可自定义部分

      <Connector port="8081" protocol="HTTP/1.1"
                     connectionTimeout="20000"
                     redirectPort="8443" />
      -- port: 默认的访问端口。例:http://localhost:8080/
      -- protocol:代表http通信协议版本
      
      <Engine name="Catalina" defaultHost="localhost">
            <Realm className="org.apache.catalina.realm.LockOutRealm">
              <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                     resourceName="UserDatabase"/>
            </Realm>
      		<!--name代表访问ip,appBase代表指定的网站访问路径,
      		unpackWARs代表是否会自动解压war包,autoDeploy代表是否自动发布-->
            <Host name="localhost"  appBase="webapps"
                  unpackWARs="true" autoDeploy="true">
              <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>
          </Engine>
      
    • server.xml文件架构图

    1. Server可以有多个service服务; service可以有多个connector;Engine中也可以有多个host,包括一个本地主机localhost和多个虚拟主机;
    2. 浏览器使用service中的connector来建立连接;
    3. 使用service中的engine来提供具体的服务.
    

    2.3 webapps应用文件夹

    • 图中每一个文件夹代表一个应用,总共有5个应用;

      作用: webapps主要用来存放应用程序的.当tomcat启动时回去加载webapps下目录下的应用程序,因此,可以文件夹war包jar包发布应用.

    • root目录: 是tomcat默认的启动目录,tomcat的官网首页相关文件就存放在root目录中.

    • 问题1:那Tomcat是如何加载webapps下的应用呢?即加载顺序

      答:Tomcat加载应用时,即为部署web服务。

      -- 1.1 拷贝war包或web应用文件夹到webapps目录下

      **问题1.1 **:部署的项目到底放在webapps目录下还是root目录下?或者说两者的区别

      答:都可以。不过两者之间存在细微的差别。

      区别:

      1. webapps目录下:将项目名.war包直接放在webapps目录下,Tomcat加载时,会自动解压,并创建一个项目名.war文件目录。例:nowcoder.war

      2. webapps目录下:访问测试:localhost:8080/nowcoder/文件名
        
      3. root目录下:不能将war包或war包解压后的整个压缩文件放进去,应该将解压文件夹里的文件放到root目录下

      4. root目录下:访问测试:localhost:8080/文件名
        -- 相比于webapps目录下,去掉了**项目名**
        
      5. 总结:Tomcat服务器启动时,会先去webapps目录下找项目。如果找到项目,则显示出来;否则,去Root目录下寻找项目。

        注意:Root目录下只能存放一个项目;webapps下可以存放多个项目文件,然后根据项目名去寻找

      问题1.2:如何修改默认Root目录?

      答:打开conf文件夹下的server.xml文件。

      <Host name="localhost"  appBase="webapps"
                  unpackWARs="true" autoDeploy="true">
      <!--添加一行-->
      <Context path=”" docBase=”zhangsan” debug=”0″ reloadable=”true” />
      <!--注释-->
      重启Tomcat后,会默认加载zhangsan目录下的文件。
      

    3. 如何自定义访问网站

    3.1 为什么访问8080会出现相应界面?是否可以更改

    答:因端口和主机名的配置。可以进行更改。

    3.2 修改访问端口

    -- 8080代表默认的访问端口,可以进行修改。若修改成8081端口,8080将无法访问,只有8081可以访问

    3.3 修改主机名称

    hosts文件存放域名与主机的映射地址,如若修改主机名称,需要同时修改hosts文件的内容

    4.高难度面试题

    输入一个ip地址后,网站是如何进行访问的?

    1. 输入一个域名:回车;
    2. 检查本机的C:WindowsSystem32driversetchosts配置文件下有没有这个域名 映射;
      1. 有:直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问
      2. 没有:去DNS服务器寻找,找到的话就返回,找不到就返回找不到。

    5. 如何发布一个web网站?

    -- 将自己写的网站,放到服务器(Tomcat)指定的web应用的文件夹(webapps)下,(即可以复制 root的文件结构)

    • **★★网站应该有的结构****:【后续java项目结构基于此】

      -webapps:Tomcat服务器的web目录
          -- Root
          -- kuangstudy: 网站的目录名
              -- WEB-INF
                  -classes: java程序
                  -lib: web应用所依赖的jar包
                  -web.xml: 网站配置文件
              -- index.html 默认的首页
              - static 静态文件资源目录
                  - css
                      -style.css
                  - js
                  - img
             - .......             
      
  • 相关阅读:
    iOS-mac下 svn的使用
    iOS-Model-View-ViewModel & ReactiveCocoa
    iOS-通过实现一个TableView来理解iOS UI编程(转)
    iOS-细说 iOS 消息推送(转)
    【原创】O2O,你真的知道怎么玩吗?
    谷歌提升虚拟运营商逼格,传统电信运营商的好日子到头?
    【技术贴】大型发布会现场的WiFi网络应该如何搭建?
    千万别把WIFI玩坏了!关于WIFI的新鲜玩法和商业模式探讨
    【深度分享】千团大战:看今天商业WiFi乱局及其破解之道
    (转)迎接 Entity Framework 7
  • 原文地址:https://www.cnblogs.com/zyj-0917/p/14827017.html
Copyright © 2020-2023  润新知