zoukankan      html  css  js  c++  java
  • Tomcat——简介、目录结构等

    软件的体系结构

    1.C/S结构    Client/Server 客户端/服务端
        *VB,Delphi,VC++,C#,Java awt/swing:比如桌面QQ,扫雷,拱猪等运行在桌面的程序.
        *特点:在服务端主要就是一个数据库,把所有业务逻辑以及界面的渲染操作交给客户端完成.
        *优点:安全,用户界面很丰富,用户体验好等.
        *缺点:安装,部署,开发,维护麻烦
    2.*B/S	Browser/Server 浏览器/服务端
        *优点:安装,部署,开发,维护简单
        *缺点:对硬件要求打
            如果应用过大,用户体验会受到影响
        ![](https://img2020.cnblogs.com/blog/1668748/202004/1668748-20200424230054418-182685152.png)
    

    Web资源分类

    1.静态资源
        *html, css, JavaScript等
        *所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏览器解析.
    2.动态资源
        *servlet, jsp, php, asp
        *每个用户访问相同资源后,得到的结果可能不一样。称为动态资源。动态资源被访问后,需要先转换为静态资源,在返回给浏览器
        ![](https://img2020.cnblogs.com/blog/1668748/202004/1668748-20200424230438723-1274421277.png)
    

    Web服务器

    1.Web服务器的作用是接收客户端的请求,给客户端作出响应。
    2.对于JavaWeb程序而已,还需要有JSP/Servlet容器,JSP/Servlet容器的基本功能是把动态资源转换成静态资源,当然JSP/Servlet容器不只这些功能.
    3.常见的Web服务器软件
        web服务器软件中,可以部署web项目,让用户通过浏览器来访问这些项目.
            Tomcat(Apache):当前应用最广的JavaWeb服务器,;
            JBoss(Redhat红帽):支持JavaEE,应用比较广;
            GlassFish(Orcale):Oracle开发JavaWeb服务器,应用不是很广;
            Resin(Caucho):支持JavaEE,应用越来越广;
            Weblogic(Orcale):要钱的!支持JavaEE,适合大型项目;
            Websphere(IBM):要钱的!支持JavaEE,适合大型项目
    

    Tomcat

    1.简介
        Tomcat 是 Apache 基金组织开发的一个中小型 JavaEE 服务器,是开源免费的,Tomcat是常见的免费的web服务器,Tomcat是使用Java语言编写的一个服务器(程序),要运行Tomcat,必须得有JRE;
    2.安装、环境变量配置
        参考这篇博客: https://blog.csdn.net/qq_40881680/article/details/83582484
    3.访问Tomcat
    4.http://服务器所在主机的IP:服务器的端口号/资源名字.
        注意: 访问本地IP为 127.0.0.1 或 localhost
    5.目录结构
        1.bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat8.exe、
            tomcat8w.exe,前者是在控制台下启动Tomcat,后者是弹出UGI窗口启动Tomcat;如果是解压版,那么会有startup.bat和shutdown.bat文件,startup.bat用来启动Tomcat,但需要先配置JAVA_HOME环境变量才能启动,shutdawn.bat用来停止
        2.conf:这是一个非常重要的目录,这个目录下有四个最为重要的配置文件.
            1.server.xml:配置整个服务器信息。例如修改端口号,添加虚拟主机等;
            2.tomcat-users.xml:存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。
            3.web.xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html文件了。但如果              
              服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME就是用来说明文档的内容是什么类型的!
            4.context.xml:对所有应用的统一配置,通常我们不会去配置它。
        3.lib:存放了Tomcat软件启动运行的依赖jar文件
        4.logs:这个目录中都是日志文件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,那么异常也会记录在日志文件中。
        5.temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除!
        6.webapps:存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是tomcat自带的项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。http://localhost:8080/examples,进入示例项目。其中examples就是项目名,即文件夹的名字。
        7.work:工作目录,存放了jsp翻译成Servlet的java文件以及字节码文件.
    6.常见问题
        1.还没启动Tomcat或者Tomcat启动失败,就去访问地址.
        2.Tomcat启动成功,但是出现404的页面.
          可能我们自己把资源的路径写错了,自己检查,如访问了一个不存在的页面.
        3.Tomcat还未关闭,又再次重新启动Tomcat.
        出现:java.net.BindException: Address already in use: JVM_Bind异常.
        说明该程序的端口以及被其他程序所占用.
        注意: 出现错误后, 要习惯去查看日志信息.Tomcat根/logs/catalina.2015-12-31.log
        ![](https://img2020.cnblogs.com/blog/1668748/202004/1668748-20200425164313827-1324568623.png)
        4.要保证XML内容编码和文件编码相同,若有中文,建议使用UTF-8,否则不能使用中文.
        5.启动报错 
            1.暴力:找到占用的端口号,并且找到对应的进程,杀死该进程
                *netstat -ano
            2. 温柔:修改自身的端口号
                *conf/server.xml
                *<Connector port=“8888” protocol=“HTTP/1.1” connectionTimeout=“20000” redirectPort=“8445” />
                *一般会将tomcat的默认端口号修改为80。80端口号是http协议的默认端口号。
                * 好处:在访问时,就不用输入端口号
    

    JavaWeb应用的目录结构

    *WEB应用程序指供浏览器访问的程序,通常也简称为web应用。 
        *一个web应用由多个静态web资源和动态web资源组成.
    1.创建静态应用
        1.在Tomcat的目录webapps文件夹下创建一个目录(如hello)
        2.在webappshello下创建静态资源(html, js等)index.html
        3.启动Tomcat
        4.打开浏览器访问http://localhost:8080/hello/index.html
    2.创建动态应用
        1.在webapps下创建hello1目录
        2.在webappshello1下创建WEB-INF目录
        3.在webappshello1WEB-INF下创建web.xml
        4.在webappshello1下创建index.html
        5.打开浏览器访问http://localhost:8080/hello/index.html
        ![](https://img2020.cnblogs.com/blog/1668748/202004/1668748-20200425165040255-1375798143.png)
            *hello:应用目录,hello就是应用的名称;
            *index.html:应用资源。应用下可以有多个资源,例如css、js、html、jsp等,也可以把资源放到文件夹中,例如:hellohtmlindex.html,这时访问URL为:http://localhost:8080/hello/html/index.html;
            *WEB-INF:这个目录名称必须是大写,这个目录下的东西是无法通过浏览器直接访问的,也就是说放到这里的东西是安全的.
            *web.xml:应用程序的部署描述符文件,可以在该文件中对应用进行配置.
            *classes:存放class文件的目录.
            *lib:存放jar包的目录.
    

    部署JavaWeb项目

    1.直接将项目放在webapps目录下即可
        */hello :访问虚拟路径
        *简化部署:将项目打成一个war包,再将war包放置到webapps目录下。war包会自动解压
    2.配置conf/server.xml文件
        在Host标签体内配置
        <Context docBase"C:hello" path="/zy/">
            *path:指定当前应用的名称(虚拟目录)
            *docBase:表示把哪一路径下的项目给部署起来
            *浏览器访问路径:http:://localhost:8080/zy/index.html
    3.在conf/Catalina/localhost创建任意名称的xml文件
        1.在文件中编写 比如 abc.xml
            *<Context docBase="C:hello" /> 此时的path虚拟目录就为xml文件的名称
        2.访问 http://localhost/abc/index.html
    

    IDEA与tomcat的相关配置

    1.IDEA会为每一个tomcat部署的项目单独建立一份配置文件
        *Using CATALINA_BASE: "C:UsersSunny.IntelliJIdea2019.3system	omcat\_coderZYGui"
    2.工作空间项目 和 tomcat部署的web项目位置
        *E:JavaEEcodeidea_codecoderZYGuioutartifacts
        WEB-INF目录下的资源不能被浏览器直接访问。
    

    断点调试

  • 相关阅读:
    iOS 9 ContactsFramework
    performSelector延时调用导致的内存泄露
    ARC 下内存泄露的那些点
    CoreText.framework --- 基本用法
    edgesForExtendedLayout
    CocoaPods使用详细说明
    IOS开发笔记(11)IOS开发之NSLog使用技巧
    网页中调用JS与JS注入
    Block就像delegate的简化版
    转:UINavigationBar--修改导航栏返回按钮的文字
  • 原文地址:https://www.cnblogs.com/linjing111/p/12774190.html
Copyright © 2011-2022 走看看