META-INF、WEB-INF 是什么玩意儿?

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.4 和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下,原因主要有两个

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

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

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

3. 总结

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

4. 参考&引用

百度百科

META-INF目录是干啥用的?

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

最后

最近工作996很忙,写博客都是用休息的时间写的. T_T

如果帮助到你了,点个赞吧,这对博主真的很重要~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值