Tomcat学习

一:项目默认部署路径:

    eclipse中,默认new一个server,项目默认会部署在:workspace(工作空间).metadata.pluginsorg.eclipse.wst.server.core mp0webapps目录下。当new第二个server时,会创建tmp1目录,项目部署在tmp1webapps目录下,以此类推。如图一。

    当然了,我们也可以手动指定项目的部署路径,如图二。

=================================================================

二:tomcat安装结构:

 

  wtpwebapps:tomcat每次启动,会将部署到tomcat上的项目,复制到该目录下。即使将该目录下的项目删除,tomcat启动后,也会i将部署在其上面的项目发布publish到该目录下

                               在Eclipse中,选中Server进行右键操作,add、remove操作对应的都是该目录下的项目的增加、删除操作。

  work/conf/Catalina:tomcat会将jsp文件的字节码class文件保存到该目录下 

  Eclipse中的Server目录:对应的是tomcat/conf下对应的内容
        server.xml:对应的是tomcat的配置信息:选中tomcat,右键add一个项目,就会在该文件中的增加一个<Context>标签,用来表示该项目的访问,同时也可以指定项目的访问根路径。
     同时,右键remove一个项目,会自动删除该项目对应的<Context>标签的内容。
 
  Catalina:是一个web容器,根据ip、端口创建唯一的连接,相关操作都是通过配置的方式实现的 

 tomcat几个常用的命令:

  start:publish + 启动 

  clean:将tomcat下已经remove的项目真正的删除

  project clean:会将D:Workspaceadmin-web argetclasses目录下的文件删除掉,重新将eclipse中最新的代码copy一份过来。

      classes:是项目打包后的目录

  publish:是将classes下的目录发布到tomcat中

      部署就是把编译后的文件推到容器,容器是没有编译功能的

三:tomcat结构图

由Server的server.xml的结构看Tomcat的体系结构

<Server>                                                //顶层类元素,外层最大的容器,可以包括多个Service   
    <Service>                                           //顶层类元素,可包含一个Engine,多个Connecter
        <Connector>                                     //连接器类元素,代表通信接口
                <Engine>                                //容器类元素,为特定的Service组件处理客户请求,要包含多个Host
                        <Host>                          //容器类元素,为特定的虚拟主机组件处理客户请求,可包含多个Context
                                <Context>               //容器类元素,为特定的Web应用处理所有的客户请求
                                </Context>
                        </Host>
                </Engine>
        </Connector>
    </Service>
</Server>

其中: 

<Service name="Catalina">   //Catalina容器

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>    //根据ip、端口建立连接

<Context docBase="web" path="/" reloadable="true" source="org.eclipse.jst.jee.server:web"/></Host>  //该Server下部署的项目,项目名称为web,path也就是该项目的根访问路径

四:注解:

1.@PostConstruct说明

     被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。

2.@PreDestroy说明

     被@PreDestroy修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法。被@PreDestroy修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前。

原文地址:https://www.cnblogs.com/quan-coder/p/8024439.html