• 关于IDEA中添加静态资源(html,jpg等)后找不到资源(404 not found),以及WEB-INF目录介绍


    关于静态资源的加载

    在IDEA中的java web application(或者maven项目)添加新的静态资源时(如html,jpg,gif等),常常会遇到静态资源无法加载的情况。这样的情况我们一般都会想到首先通过热部署或者重启tomcat服务器来加载资源。

    但是,有些时候,无论我们的tomcat是否热部署或者不管怎么重启tomcat都无法访问这些资源(提示404找不到),然后就百思不得其解。这种时候可以尝试一下重启整个IDEA,重启之后或许就能够找到这些静态资源。

    这可能是由于out目录(idea中的Excluded输出目录,默认为橘红色)中没有加载到这些资源,将需要加载的静态资源手动复制到对应的目录下就行了。这样就可以避免我们在添加静态资源时反复重启IDEA了。
    在这里插入图片描述
    当然上述内容是建立在静态资源没有放在不合适位置的前提下。

    一般情况下,这些静态资源往往放置于与WEB-INF同一级的webapp或者WebRoot文件夹(或其子目录)>下,而不能放在WEB-INF目录中。

    说到这里,咱就顺便介绍一下web项目中的WEB-INF目录

    web项目中的WEB-INF目录

    WEB-INF是Java web的安全目录,其中一般包含:

    1. /WEB-INF/web.xml : web应用的配置文件,描述servlet和其他应用组件配置及命名规则,相信大家如果配置过servlet对它一定不陌生。
    2. /WEB-INF/classes/ :该目录包含站点的class文件,包括 servlet class 和非servlet class。
    3. /WEB-INF/lib/ : 存放web application所需要的各种jar包,一般需要在IDEA的Project Structure的Modules中将这个目录添加到依赖。这个目录一般放置仅在这个web应用中用到的jar文件,例如数据库驱动jar文件(我们链接postgis数据库时就需要用到)。
    4. 由于WEB-INF目录是不对外开放的,外部没办法直接访问到(即不能通过URL访问)。只能通过映射来访问,比如映射为一个action或者servlet通过服务器端跳转来访问到具体的页面。这样,在WEB-INF目录中就可以存放一些不对外开放的页面,限制用户的访问,提高安全性。
  • 相关阅读:
    跟面试官聊.NET垃圾收集,直刺面试官G点
    基于.net开发chrome核心浏览器【五】
    HTTP和HTTPS的区别(转)
    Java多线程
    Java常用设计模式
    MVC详解(转)
    java的反射机制浅谈(转)
    进程、线程与处理器的调度(转)
    请简单介绍一下什么是Spring?
    面向对象三大特性概述[封装、继承、多态](转)
  • 原文地址:https://www.cnblogs.com/ssjxx98/p/12984188.html
Copyright © 2020-2023  润新知