META-INF、WEB-INF分别是什么?
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分别是什么?相关推荐
- 设备驱动程序INF文件——INF文件的节
INF文件的节 INF文件是一个文本文件,由许多按层次结构排列的节组成,他们以方括号中的节名称开始,如[Version].[Manufacturer]等,后面是改接所含有的各个项,如Signature ...
- Windows 组策略修改 之 初始化文件 %windir%\inf\defltbase.inf
OS 名称: Microsoft Windows Server 2012 R2 Standard OS 版本: 6.3.9600 暂缺 Build 9600 查看所 ...
- java获取WEB INF目录绝对路径
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! JSP ...
- 编写autorun.inf autorun.inf完整内容
autorun.inf 是我们电脑使用中比较常见的文件之一 ,其作用是允许在双击磁盘时自动运行指定的某个文件.但是近几年出现了用autorun.inf文件传播木马或病毒,它通过使用者的误操作让目标程序 ...
- 浮点数NaN和INF(#IND, #INF)
参考: http://www.cplusplus.com/reference/cmath/isnan/ http://technet.microsoft.com/zh-cn/tzthab44(v=vs ...
- 缓存和web缓存分别是什么?
什么是缓存? 缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术.缓存的设置是所有现代计 ...
- python flask框架是什么_Python三大web框架分别是什么 哪个更好
展开全部 [导读]目前,Python比较2113火的三大5261web框架有Django.Flask和Tornado,要论这三个Web框架哪个更好4102的话,建议一点1653,Django帮我们事先 ...
- Web.xml分模块
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "- ...
- 好程序员web前端分享用CSS和JS打造一个简单的图片编辑器
本文主要是利用 CSS的 filter和简单的Jquery代码来实现一个简单的图片编辑器,包括对图片的透明度,黑白,图片亮度等调节. CSS filter 我们首先来探讨一下 filter. 首先来说 ...
- web端分屏异显实现-Angular+Electron
要点: 主屏实现-Angular实现,部署在服务器 副屏实现-Angular+Electron,本地应用 主副屏通信 背景: 类似银行柜台操作的一个应用场景:银行人员在个人电脑上一界面操作,但需要同时 ...
最新文章
- php 控制网站跳转,迅睿CMS 重写控制网站自动跳转函数
- mysql性能的介绍少_MySQL性能突然下降怎么回事 MySQL性能突然下降原因介绍
- 今日头条的面试题(部分)
- 幽暗统领 树的重心 牛客白月赛44
- haXe下体验jQuery
- 网络共享服务Samba和NFS配置
- 三电平igbt死区时间计算_IGBT基础与运用-2
- CYQ.DBImport 数据库反向工程及批量导数据库工具 V2.0 发布[增加批量导出数据库脚本及数据库设计文档]...
- 计算机网络项目——最小网元设计(阶段四)
- 2021年Q2母婴行业季度洞察报告
- 操作系统(李治军) L10用户级线程
- 充满男性荤段子的开源软件 DICSS 引发争议
- VC文件读写操作总结
- 构建smaba服务器
- 第十一篇:Mysql系列
- 兰勃特等角圆锥(Lambert Conformal Conic)投影正反变换
- 泰勒展开简单直观理解与常用公式
- oracle羊毛,预言机(Oracle)简介和撸羊毛教程— 上篇
- 有向图和有权图的邻接矩阵表示法
- HBase原理–所有Region切分的细节都在这里了
热门文章
- html5 鼠标双击,鼠标双击或触摸双击事件检测jQuery插件
- 提示网站服务器403,浏览器打开网页时出现http 403 禁止访问错误是什么原因?
- Portable Batch System
- kubernetes 源码安装1.18.3 (2)部署etcd集群
- Java培训哪个机构比较好?怎么选?
- 第4章 手机平板要兼顾,探究碎片
- python 球的表面积和体积_[给球的体积算表面积]C语言求球的表面积和体积
- 《管理学》第十周阶段性回顾
- Unity表情聊天(NGUI图文混排)
- python制作四川话并生成证书,可打包为exe