Tomcat学习
一:项目默认部署路径:
eclipse中,默认new一个server,项目默认会部署在:workspace\(工作空间)\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\webapps目录下。当new第二个server时,会创建tmp1目录,项目部署在tmp1\webapps目录下,以此类推。如图一。
当然了,我们也可以手动指定项目的部署路径,如图二。
=================================================================
二:tomcat安装结构:
wtpwebapps:tomcat每次启动,会将部署到tomcat上的项目,复制到该目录下。即使将该目录下的项目删除,tomcat启动后,也会i将部署在其上面的项目发布publish到该目录下
在Eclipse中,选中Server进行右键操作,add、remove操作对应的都是该目录下的项目的增加、删除操作。
work/conf/Catalina:tomcat会将jsp文件的字节码class文件保存到该目录下
tomcat几个常用的命令:
start:publish + 启动
clean:将tomcat下已经remove的项目真正的删除
project clean:会将D:\Workspace\admin-web\target\classes目录下的文件删除掉,重新将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被彻底卸载之前。