• 关于Tomcat首页配置,类加载顺序以及优先级


    关于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
       

  • 相关阅读:
    软件测试全套教程,软件测试自学线路图
    tkinter 综合应用
    Android多版本flavor配置之资源文件和清单文件合并介绍
    Elasticsearch:运用向量搜索通过图像搜索找到你的小狗
    win10 任务栏预览设置为列表效果
    搜索留痕推广引流软件的作用#川圣SEO#蜘蛛池
    Linux起源
    揭秘报表新玩法!标配插件不再单调,如何用柱形图插件让你的报表瞬间高大上!
    SpringBoot二手车管理系统
    实验六:Android的网络编程基础
  • 原文地址:https://blog.csdn.net/HQqHQhqqhq/article/details/127126453