关于Tomcat和JVM的一些理解:
JVM(虚拟机),相当于电脑安装系统一样,可以运行应用程序。让tomcat【相当于电脑】跑起来,就得有jdk,而jdk自带了JVM【操作系统】
Idea中可以讲java文件编译为clasess字节码文件,从而在Tomcat的JVM中运行。
本身Tomcat无法进行编译操作,编译是在idea中进行的,Tomcat只能加载classes字节码文件在JVM中运行,所以当把WEB-INF下的classes/com下的经过idea编译好的classes字节码文件删除后,重新启动Tomcat不会重新生成classes文件【1.编译只在idea中进行2.也因为本身源代码不在Tomcat中】,所以如果删除了WEB-INF/classes/com的字节码classes文件,那么当Tomcat启动时去加载spring相关xml中类对象时会找不到,服务无法正常使用。
可以通过将源代码的jar直接放在WEB-INF/lib下 这样也可以将源代码的字节码文件加载到spring容器中,项目就可以正常使用了,即不用每次升级替换classes而替换jar就可以了。
一.Tomcat 启动首页配置:
web.xml中
index.jsp
index.jsp中可以写java代码
<%
String urlUserLogin=SpringContextUtil.getSysParam("SYS_URL_USERLOGIN");
response.sendRedirect(urlUserLogin);
%>
二.Tomcat启动类加载的顺序:Tomcat类装载器先装载classes目录下的类,再装载lib目录下的类。因为类同名时,classes优先。
所以要注意部署单体项目时:
如果是将的项目的源代码jar部署在lib下,那么要删除classes下的com目录,否则代码运行时不会走jar中的类。
如果没有将项目的源代码jar放在lib下,只是在classes下的com下运行,那么每次升级替换对应的类classes文件或者整个com目录都可以。
三.Tomcat启动主要依托于web.xml文件,是Tomcat容器启动的入口文件,一般用于:
(1)配置JSP。
(2)配置和管理Servlet。
(3)配置和管理Listener。
(4)配置和管理Filter。
(5)配置标签库。
(6)配置JSP属性。
(7)配置和管理JAAS授权认证。
(8)配置和管理资源引用。
(9)配置Web应用首页。
比较关键的有:
1.加载xml中配置好的对象到spring容器中
contextConfigLocation /WEB-INF/classes/config/spring/application-context.xml
2.设置多个过滤器:
2.1前端访问后端请求时的struts过滤拦截器
struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter config struts-default.xml,struts-plugin.xml,config/struts/struts.xml struts2 *.action struts2 *.do struts2 *.jsp struts2 *.html struts2 /user/*
2.2.公共安全校验过滤器
commonFilter com.bgd.platform.util.security.CommonFilter commonFilter *.action commonFilter *.jsp commonFilter *.html
3.接受所有帆软请求服务的servlet接口
ReportServer com.fr.web.ReportServlet 0 ReportServer /ReportServer