1. 概述
在学习spring.factories时发现自己对于META-INF和WEB-INF的作用还不甚了解,因此在这里做一个补充。

META-INF 的作用主要是对Jar包进行一个描述。其意为(meta information)签名文件夹。在打包jar时会自动的生成,当然也可以手动的配置修改。

WEB-INF 是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。

2. 详述
2.1 百度上的解释
META-INF 相当于一个信息包,目录中的文件和目录获得 Java 2 平台的认可与解释,用来配置应用程序、扩展程序、类加载器和服务 manifest.mf 文件,在用 jar 打包时自动生成。

WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。

2.2 mainfest.mf文件
意为清单文件,manifest 文件中的每一行都是 key-value 对应的:属性名开头,接着是 “:” ,然后是属性值,每行最多72个字符,如果需要增加,可以在下一行续行,续行以空格开头,以空格开头的行都会被视为前一行的续行。通常有这些字段:

Manifest-Version: 1.0
Built-By: Dxy
Created-By: IntelliJ IDEA
Build-Jdk: 1.8.0_144

这些信息就是 jar 文件的描述信息:

Manifest-Version:生成的 manifest.mf 文件的版本
Built-By:文件的创建用户命名,在 IDEA 的配置文件中可以设置
Created-By:文件的生成者,一般由jar命令行工具生成,这里显示的时 idea
Bulid-Jdk:所使用的 JDK 环境

还有这些属性:

一、一般属性1:Signature-Vresion:定义 jar 文件的签名版本2:Class-Path:内部的类搜索路径,提供给应用程序或者类装载器二、应用程序的相关属性1、Main-Class:定义 jar 文件的入口类,该类必须可执行!一旦定义了该属性就可以使用java -jar 程序名.jar 来运行该 jar 文件

2.3 和WEB-INF的区别

META-INF 存放的是 jar 包的标签信息,jar 都会有这个文件夹,war 也会有。

而 WEB-INF 是 java web 应用所特有的一个文件夹,属于 web 应用的安全目录,该目录客户端无法进行访问,只有服务端可以访问。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。这样如果我们的页面中出现超链接<a>标签或者<script></script>脚本下的location.href去直接转向到WEB-INF下的某一个jsp或者html页面,那么就会引用不到,因为这样的请求方式是客户端的请求。css/js/html没有必要放在WEB-INF下。 最终这些会被原封不动的展现在客户端,所以访问安全根本就不会成为问题。

jsp放在web-inf下,原因主要有两个

远古时代的模式会把业务逻辑,数据库连接等敏感信息写在jsp里面,被用户直接访问会有安全问题。
现代模式里这个不再成为问题,不应该成为问题。

jsp是在服务器端运行的,而且通常都需要其他程序支持——比如后台处理好数据再让jsp渲染等,用户直接访问一则没有意义,二则会抛异常,这些都浪费服务器资源。

对于安全要求很严格的系统来说,不允许随便访问你的jsp文件,你可以放到web-inf下面,对于安全性要求没有那么严格的系统来说,你可以直接放到webroot下面。

3. 总结
META-INF 相比 WEB-INF在日常开发中通常用的少一些,一般其中的字段都是构建工具或者IDE自动生成的。

4.META-INF是干啥用的

Web项目的WEB-INF目录使用说明

META-INF、WEB-INF分别是什么?相关推荐

  1. 设备驱动程序INF文件——INF文件的节

    INF文件的节 INF文件是一个文本文件,由许多按层次结构排列的节组成,他们以方括号中的节名称开始,如[Version].[Manufacturer]等,后面是改接所含有的各个项,如Signature ...

  2. Windows 组策略修改 之 初始化文件 %windir%\inf\defltbase.inf

    OS 名称:          Microsoft Windows Server 2012 R2 Standard OS 版本:          6.3.9600 暂缺 Build 9600 查看所 ...

  3. java获取WEB INF目录绝对路径

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! JSP ...

  4. 编写autorun.inf autorun.inf完整内容

    autorun.inf 是我们电脑使用中比较常见的文件之一 ,其作用是允许在双击磁盘时自动运行指定的某个文件.但是近几年出现了用autorun.inf文件传播木马或病毒,它通过使用者的误操作让目标程序 ...

  5. 浮点数NaN和INF(#IND, #INF)

    参考: http://www.cplusplus.com/reference/cmath/isnan/ http://technet.microsoft.com/zh-cn/tzthab44(v=vs ...

  6. 缓存和web缓存分别是什么?

    什么是缓存? 缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术.缓存的设置是所有现代计 ...

  7. python flask框架是什么_Python三大web框架分别是什么 哪个更好

    展开全部 [导读]目前,Python比较2113火的三大5261web框架有Django.Flask和Tornado,要论这三个Web框架哪个更好4102的话,建议一点1653,Django帮我们事先 ...

  8. Web.xml分模块

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "- ...

  9. 好程序员web前端分享用CSS和JS打造一个简单的图片编辑器

    本文主要是利用 CSS的 filter和简单的Jquery代码来实现一个简单的图片编辑器,包括对图片的透明度,黑白,图片亮度等调节. CSS filter 我们首先来探讨一下 filter. 首先来说 ...

  10. web端分屏异显实现-Angular+Electron

    要点: 主屏实现-Angular实现,部署在服务器 副屏实现-Angular+Electron,本地应用 主副屏通信 背景: 类似银行柜台操作的一个应用场景:银行人员在个人电脑上一界面操作,但需要同时 ...

最新文章

  1. php 控制网站跳转,迅睿CMS 重写控制网站自动跳转函数
  2. mysql性能的介绍少_MySQL性能突然下降怎么回事 MySQL性能突然下降原因介绍
  3. 今日头条的面试题(部分)
  4. 幽暗统领 树的重心 牛客白月赛44
  5. haXe下体验jQuery
  6. 网络共享服务Samba和NFS配置
  7. 三电平igbt死区时间计算_IGBT基础与运用-2
  8. CYQ.DBImport 数据库反向工程及批量导数据库工具 V2.0 发布[增加批量导出数据库脚本及数据库设计文档]...
  9. 计算机网络项目——最小网元设计(阶段四)
  10. 2021年Q2母婴行业季度洞察报告
  11. 操作系统(李治军) L10用户级线程
  12. 充满男性荤段子的开源软件 DICSS 引发争议
  13. VC文件读写操作总结
  14. 构建smaba服务器
  15. 第十一篇:Mysql系列
  16. 兰勃特等角圆锥(Lambert Conformal Conic)投影正反变换
  17. 泰勒展开简单直观理解与常用公式
  18. oracle羊毛,预言机(Oracle)简介和撸羊毛教程— 上篇
  19. 有向图和有权图的邻接矩阵表示法
  20. HBase原理–所有Region切分的细节都在这里了

热门文章

  1. html5 鼠标双击,鼠标双击或触摸双击事件检测jQuery插件
  2. 提示网站服务器403,浏览器打开网页时出现http 403 禁止访问错误是什么原因?
  3. Portable Batch System
  4. kubernetes 源码安装1.18.3 (2)部署etcd集群
  5. Java培训哪个机构比较好?怎么选?
  6. 第4章 手机平板要兼顾,探究碎片
  7. python 球的表面积和体积_[给球的体积算表面积]C语言求球的表面积和体积
  8. 《管理学》第十周阶段性回顾
  9. Unity表情聊天(NGUI图文混排)
  10. python制作四川话并生成证书,可打包为exe