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

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

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容器中

 <!-- 设置Spring容器加载配置文件路径 -->
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/classes/config/spring/application-context.xml</param-value>
</context-param>

2.设置多个过滤器:

        2.1前端访问后端请求时的struts过滤拦截器

   <filter>
   <filter-name>struts2</filter-name>
   <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
   <init-param>
   <param-name>config</param-name>
   <param-value>struts-default.xml,struts-plugin.xml,config/struts/struts.xml</param-value>
   </init-param>
</filter>

<filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.html</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/user/*</url-pattern>
</filter-mapping>

        2.2.公共安全校验过滤器

 <filter>       
      <filter-name>commonFilter</filter-name>       
      <filter-class>com.bgd.platform.util.security.CommonFilter</filter-class>       
 </filter>
 <filter-mapping>    
      <filter-name>commonFilter</filter-name>    
      <url-pattern>*.action</url-pattern>    
</filter-mapping>
<filter-mapping>    
      <filter-name>commonFilter</filter-name>    
      <url-pattern>*.jsp</url-pattern>    
</filter-mapping> 
<filter-mapping>    
      <filter-name>commonFilter</filter-name>    
      <url-pattern>*.html</url-pattern>    
</filter-mapping>

3.接受所有帆软请求服务的servlet接口

<servlet>
    <servlet-name>ReportServer</servlet-name>
    <servlet-class>com.fr.web.ReportServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
   </servlet>
   <servlet-mapping>
    <servlet-name>ReportServer</servlet-name>
    <url-pattern>/ReportServer</url-pattern>
   </servlet-mapping>

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值