JSP——Web项目下的WEB-INF简介及存放发的文件类别

WEB-INF简介

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

 

WEB-INF存放的文件类别

/WEB-INF/web.xml Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。

/WEB-INF/classes/包含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中(是该目录不能包含在.jar文件中)。

/WEB-INF/lib/存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件。

/WEB-INF/src/源码目录,按照包名结构放置各个java文件。

/WEB-INF/database.properties数据库配置文件

/WEB-INF/tags/ 存放了自定义标签文件,该目录并不一定为

tags,可以根据自己的喜好和习惯为自己的标签文件库命名,当使用自定义的标签文件库名称时,在使用标签文件时就必须声明正确的标签文件库路径。例如:当自定义标签文件库名称为

simpleTags 时,在使用 simpleTags 目录下的标签文件时,就必须在 jsp 文件头声明为:<%@taglibprefix=”tags” tagdir=”/WEB-INF /simpleTags” % >。

原文地址:https://blog.youkuaiyun.com/venus321/article/details/81016682

### 关于 Java WebWEB-INF 目录的作用 #### 安全隔离功能 `WEB-INF` 是 Java Web 应用中的一个重要目录,其主要作用之一是提供安全性保护。该目录及其子目录的内容无法被客户端直接访问[^1]。这意味着即使尝试通过 URL 访问 `WEB-INF` 下的资源(如 HTML 文件JSP 页面或其他静态文件),服务器也会拒绝请求并返回 404 错误。 #### 配置管理 `WEB-INF` 目录通常包含重要的配置文件和依赖库。具体来说: - **web.xml**: 这是一个标准的部署描述符文件,用于定义 Servlet 映射、过滤器、监听器以及其他应用级别的设置[^2]。 - **lib 目录**: 存放当前 Web 应用所需的 JAR 文件。这些 JAR 文件仅对该应用可见,不会影响其他应用或全局环境。 - **classes 目录**: 存储编译后的 `.class` 文件以及相关的资源文件,例如属性文件或模板文件。 #### 资源映射与访问控制 尽管 `WEB-INF` 不允许直接从外部访问,但可以通过特定机制间接访问其中的资源。例如: - 使用 `web.xml` 或注解方式将某些资源映射到可公开访问的路径上。 - 利用 `Servlet` 动态读取 `WEB-INF` 下的文件内容,并将其作为响应数据送给客户端[^5]。 以下是动态读取 `WEB-INF` 下文件的一个示例代码: ```java // 获取 WEB-INF 下指定文件的输入流 String filePath = "/WEB-INF/example.txt"; InputStream inputStream = getServletContext().getResourceAsStream(filePath); if (inputStream != null) { try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) { String line; StringBuilder content = new StringBuilder(); while ((line = reader.readLine()) != null) { content.append(line).append("\n"); } // 将文件内容写入 HTTP 响应 response.getWriter().write(content.toString()); } catch (IOException e) { throw new ServletException("Error reading file from WEB-INF", e); } } else { response.sendError(HttpServletResponse.SC_NOT_FOUND, "File not found in WEB-INF"); } ``` #### 其他关联目录 除了 `WEB-INF` 外,还存在另一个重要目录——`META-INF`。它主要用于存储元数据信息,比如上下文参数、持久化单元配置等[^4]。虽然两者都属于内部使用的特殊目录,但在实际开中它们的功能定位有所不同。 --- ### 总结 综上所述,`WEB-INF` 在 Java Web中有以下几个核心用途: 1. 提供安全屏障,防止敏感资源被非法访问; 2. 承载必要的配置文件(如 `web.xml`)和运行时依赖项(如 `lib` 和 `classes`); 3. 支持基于编程逻辑实现受控的资源暴露。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值