springboot+mybatis****项目学习(2)了解Tomcat及其热部署

1.学会tomcat的原理

答:Tomcat是一个JSP/Servlet容器,是一个在Java项目与JVM之间的中间容器。其作为Servlet容器,有三种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。处理一个http请求如下:

(1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得
(2)Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应
(3)Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host
(4)Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)
(5)localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context
(6)Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为”"的Context去处理)
(7)path=”/wsota”的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的servlet
(8)Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类
(9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法
(10)Context把执行完了之后的HttpServletResponse对象返回给Host
(11)Host把HttpServletResponse对象返回给Engine
(12)Engine把HttpServletResponse对象返回给Connector
(13)Connector把HttpServletResponse对象返回给客户browser

 

2.理解tomcat的请求路径问题

答:把打包生成的war文件放到tomcat的webapp文件夹下,然后运行bin文件夹下的startup.bat文件,在浏览器可以看到本地网页:

springboot+mybatis****项目学习(2)了解Tomcat及其热部署

通过访问tomcat的webapps下的文件路径下的index.jsp访问网页。前面的8080可以通过server.xml的connector标签来改变端口。如果直接用http://localhost是因为localhost是一个域名,浏览器可以解析出来。

如果不想加项目名想访问的话,直接放到ROOT文件夹即可。可以在hosts文件中看到127.0.0.1和localhost一致。用下面的语句可以方便一点:

<welcome-file-list>
     <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

 

3.学会tomcat与idea整合

答:把文件放出去到tomcat中运行比较麻烦,这里可以直接把tomcat和idea进行整合。现在设置里面下载tomcat,如下:

springboot+mybatis****项目学习(2)了解Tomcat及其热部署

然后找到下载的tomcat进行配置:

springboot+mybatis****项目学习(2)了解Tomcat及其热部署

然后启动tomcat,会把项目发布到tomcat里面去,出现下面的信息表示成功:

springboot+mybatis****项目学习(2)了解Tomcat及其热部署

 

4.学会使用idea实现tomcat的热部署

答:上一个题目的操作其实是一个静态部署,下面可以进行热部署,找到bulid工具,然后下面一个就是热部署:

springboot+mybatis****项目学习(2)了解Tomcat及其热部署

然后把静态部署去掉,只剩下热部署,如下:

springboot+mybatis****项目学习(2)了解Tomcat及其热部署

然后我们的热部署结果成功了:

springboot+mybatis****项目学习(2)了解Tomcat及其热部署

springboot+mybatis****项目学习(2)了解Tomcat及其热部署

热部署其实就是静态部署,不必每次运行,直接可以随时改随时看。