当前位置:网站首页>META-INF、WEB-INF分别是什么?
META-INF、WEB-INF分别是什么?
2022-06-12 19:13:00 【Charter1】
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自动生成的。
边栏推荐
- leetcode:6096. 咒语和药水的成功对数【排序 + 二分】
- The Bean Validation API is on the classpath but no implementation could be found
- A fruitful afternoon
- Standard library template learning introduction original
- YOLOX网络结构详解
- [matrix theory & graph theory] final exam review mind map
- Leetcode 416. 分割等和子集
- Kali implements port forwarding through iptables
- leetcode:98. 统计得分小于 K 的子数组数目【双指针 + 计算子集个数 + 去重】
- [image denoising] image denoising based on regularization with matlab code
猜你喜欢
随机推荐
leetcode:6094. Company name [group enumeration + cannot repeat set intersection + product Cartesian product (repeat indicates length)]
Kali LAN ARP Spoofing and monitoring other hosts' Internet access records in the LAN
kali2022如何安装w3af
A small case with 666 times performance improvement illustrates the importance of using indexes correctly in tidb
leetcode:6097. Match [set record + query one by one with the same length] after replacing characters
Research Report on global and Chinese cosmetics industry market sales scale forecast and investment opportunities 2022-2028
Shell 编程正则表达式及元字符
Leetcodesql: count the number of students in each major
Redis中的事务
Market scale forecast and future competitive trend outlook report of China's plastic and cosmetic industry 2022-2028
review.js ppt数学公式无法显示
Chrome browser solves cross domain problems
3GPP RAN第一次F2F会议,都干了些啥?
Analysis report on market demand and investment strategy of China's re guarantee industry 2022-2028
Go init initialization function
原生Servlet - 文件的Upload&Download
Attack and defense world (WEB) -- supersqli
Wincc7.5 SP1 method for adjusting picture size to display resolution
[today in history] June 12: the United States entered the era of digital television; Mozilla's original developer was born; 3com merges with American Robotics
Mysql database (28): Variables









