文档章节

为什么要把静态资源放在WEB-INF下呢?

BK灬
 BK灬
发布于 2015/08/19 09:03
字数 325
阅读 3264
收藏 7

    以前我在第一家公司的时候,就遇到过这个问题,小弟把js文件放入到了WEB-INF下面,让Leader臭骂了一顿,还没毕业的我,顿时忍不了了,内心只能默默的流着泪,说着:"不好意思,我错了!".然后原因我也没搞清楚,Leader只是说不能放,放了就加载不了了.所以小弟只好照做,没问原因,只知道WEB-INF只能放静态资源,js文件不能放.

    今天在群里,我又看见有人在问这个问题,所以我决定小小地总结一下,为程序员的我们,做出一点点贡献.(大神请绕道)

  1. 安全:静态资源放在WEB-INF,客户端访问不到,服务端才可以访问到,也就是说别人不能够串改你的代码。

  2. 为了方便让Spring帮你映射:就是配置文件上会带有对静态资源的配置信息

  3. 如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。

总结:其实就是一句话:"安全"。

© 著作权归作者所有

共有 人打赏支持
BK灬

BK灬

粉丝 46
博文 343
码字总数 142485
作品 0
朝阳
后端工程师
加载中

评论(7)

陈俊凯
陈俊凯

引用来自“Role”的评论

css、js、image等静态文件放到web-inf目录下是因为界面统一由美工设计好,如果你uI放到web-info目录下,静态文件又放到webapp目录下,这样又得修改UI已经引用好的静态文件等链接,比较烦些,所以统一放到一个目录下可以减少了些没必要的工作,界面一来,我就套就成了。
正解
Role
Role
css、js、image等静态文件放到web-inf目录下是因为界面统一由美工设计好,如果你uI放到web-info目录下,静态文件又放到webapp目录下,这样又得修改UI已经引用好的静态文件等链接,比较烦些,所以统一放到一个目录下可以减少了些没必要的工作,界面一来,我就套就成了。
BK灬
BK灬

引用来自“echo1937”的评论

我的意思是:
静态资源在绝大多数应用场景下都是直接让客户端访问 web 服务器获取的,并不是通过你的应用程序代码来调用。

即便你不想css、js 这类静态资源被客户端直接访问,但最终客户端还是得到了这些静态资源,所以没啥意义

将页面的模板文件、配置文件放在 WEB-INF 之下才是有意义的
一般的可以把所有的页面展示的jsp,js,css,图片都放到WebRoot下面,也可以都放到WEB-INF下面,这个没有定论
放到WEB-INF下面的,也都是通过servlet去跳转的页面,都可以访问
一般的正式系统,是没有index.jsp这样的页面的,首页都是通过action去跳转请求出来的

一些比较隐私的,不愿被所有人看到的页面,可以放到WEB-INF下面,由action去控制查看权限等
实际中,放到WebRoot 下面和 WEB-INF 下面都可以的,WebRoot 下面多一点

这是我看到网上说的比较中肯的
:smirk:
echo1937
echo1937
我的意思是:
静态资源在绝大多数应用场景下都是直接让客户端访问 web 服务器获取的,并不是通过你的应用程序代码来调用。

即便你不想css、js 这类静态资源被客户端直接访问,但最终客户端还是得到了这些静态资源,所以没啥意义

将页面的模板文件、配置文件放在 WEB-INF 之下才是有意义的
echo1937
echo1937

引用来自“魏晋秋”的评论

关于第一条,即使不放在WEB-INF下别人也无法修改吧!

引用来自“低调的AckMan”的评论

别人是无法修改,但是客户端好像访问到,所以是为了防止客户端访问,才放到WEB-INF下,有的项目安全性比较高!
静态资源注定要被客户端访问的,放到里面以后终究会被Spring映射出去,意义何在呢?
BK灬
BK灬

引用来自“魏晋秋”的评论

关于第一条,即使不放在WEB-INF下别人也无法修改吧!
别人是无法修改,但是客户端好像访问到,所以是为了防止客户端访问,才放到WEB-INF下,有的项目安全性比较高!
魏晋秋
魏晋秋
关于第一条,即使不放在WEB-INF下别人也无法修改吧!
淘淘商城系列——单点登录之注册页面与登录页面的展示

首先我们把下图所示的单点登录系统所需要的静态资源文件放到taotao-sso-web工程当中。 记得将css、js、images放到webapp目录下,将jsp目录放到WEB-INF目录下,如下图所示。 由于taotao-sso-...

yerenyuan_pku
2017/06/14
0
0
请教一个JFinal配置文件加载的问题

@JFinal 你好,想跟你请教个问题:在JFinal的web应用里,loadPropertyFile和EhCachePlugin 默认都是从web根目录下的WEB-INF里去查找文件的。为什么不实现从classpath里去加载呢?这个在用mav...

Neoman
2014/04/15
5.3K
3
spring mvc 静态资源 404问题

spring mvc 静态资源 404问题 在web.xml配置servlet-mapping的时候,如果url-pattern设置为“/” (如下),很多人都会遇到导入js,css,图片等静态资源出现Firefox调试窗口会报出的404错误,而你...

动听的椰子
2016/01/24
107
0
【转】三分钟学会用SpringMVC搭建最小系统

前言 做 Java Web 开发的你,一定听说过SpringMVC的大名,作为现在运用最广泛的Java框架,它到目前为止依然保持着强大的活力和广泛的用户群。 本文介绍如何用eclipse一步一步搭建SpringMVC的...

枫叶摇曳
2017/07/31
233
1
spring boot框架学习6-spring boot的web开发(2)

本章节主要内容: 通过前面的学习,我们了解并快速完成了spring boot第一个应用。spring boot企业级框架,那么spring boot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定...

799879287
2017/11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊redisson的DelayedQueue

序 本文主要研究一下redisson的DelayedQueue maven <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.8.1</version></dependenc......

go4it
2分钟前
0
0
一张图看懂JVM

JVM结构示意图 JVM总体概述 JVM总体上是由类装载子系统(ClassLoader)、运行时数据区、执行引擎、内存回收这四个部分组成。其中我们最为关注的运行时数据区,也就是JVM的内存部分则是由方法...

小致dad
3分钟前
0
0
安全管理标准

安全生产严重等级分类: 故障频次: 风险等级矩阵:

乔老哥
34分钟前
2
0
数据结构“树”的相关微视频

今天在腾讯视频上闲逛,然後发现一个叫“岚人”的用户上传了几段小视频,基本上都在5分钟以内,讲解了关于树的一些结构和算法。零代码,非常适合初学者入门。不过,对于老鸟来说,这也是非常...

Iridium
46分钟前
1
0
10-利用思维导图梳理JavaSE-Java 集合

10-利用思维导图梳理JavaSE-Java 集合 主要内容 1.Collection接口 2.Set接口 2.1.Set接口概述 2.2.HashSet类 2.3.TreeSet类 2.4.SortedSet接口 3.List接口 3.1.List接口概述 3.2.ArrayList类...

飞鱼说编程
57分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部