文档章节

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

AK灬
 AK灬
发布于 2015/08/19 09:03
字数 325
阅读 3125
收藏 7
点赞 1
评论 7

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

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

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

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

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

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

© 著作权归作者所有

共有 人打赏支持
AK灬

AK灬

粉丝 46
博文 326
码字总数 137976
作品 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已经引用好的静态文件等链接,比较烦些,所以统一放到一个目录下可以减少了些没必要的工作,界面一来,我就套就成了。
AK灬
AK灬

引用来自“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映射出去,意义何在呢?
AK灬
AK灬

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

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

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

yerenyuan_pku ⋅ 2017/06/14 ⋅ 0

请教一个JFinal配置文件加载的问题

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

Neoman ⋅ 2014/04/15 ⋅ 3

三分钟学会用SpringMVC搭建最小系统(超详细)

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

qq58edeba279279 ⋅ 2017/05/05 ⋅ 0

【转】三分钟学会用SpringMVC搭建最小系统

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

枫叶摇曳 ⋅ 2017/07/31 ⋅ 1

SpringMVC访问静态资源

1、如果只配置拦截类似于*.do格式的url,则对静态资源的访问是没有问题的,如下: <!-- SpringMVC核心分发器 --> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-clas......

有资本再款 ⋅ 2015/09/04 ⋅ 0

spring mvc 静态资源 404问题

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

动听的椰子 ⋅ 2016/01/24 ⋅ 0

(一)SpringMVC之配置DispatcherServlet的一些坑

DispatcherServlet是SpringMVC的核心控制器,就像是SpringMVC的心脏,几乎所有的请求都会经过这个控制器,通过它,大大的降低了模块之间的耦合度。所有学SpringMVC的同学们第一步肯定都是先配...

Java攻城玩家 ⋅ 06/03 ⋅ 0

WEB-INF 有关的目录路径问题

1、资源文件只能放在WebContent下面,如 CSS,JS,image等.放在WEB-INF下引用不了. 2、页面放在WEB-INF目录下面,这样可以限制访问,提高安全性.如JSP,html 3、只能用转向方式来访问WEB-INF目录下...

沉默的懒猫 ⋅ 2016/10/25 ⋅ 0

WEB-INF 有关的目录路径问题总结

1、资源文件只能放在WebContent下面,如 CSS,JS,image等.放在WEB-INF下引用不了. 2、页面放在WEB-INF目录下面,这样可以限制访问,提高安全性.如JSP,html 3、只能用转向方式来访问WEB-INF目录下...

Alex_曰生 ⋅ 2016/03/26 ⋅ 0

三分钟学会用SpringMVC搭建最小系统(超详细)

摘要: 技术选型(只列了一部分技术) 服务框架:Dubbo、zookeeper、Rest服务 缓存:Redis、ehcache 消息中间件... 前言 本文介绍如何用eclipse一步一步搭建SpringMVC的最小系统,所谓最小系统...

qq592fbb5b34ad7 ⋅ 2017/06/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

10个免费的服务器监控工具

监控你的WEB服务器或者WEB主机运行是否正常与健康是非常重要的。你要确保用户始终可以打开你的网站并且网速不慢。服务器监控工具允许你收集和分析有关你的Web服务器的数据。 有许多非常好的服...

李朝强 ⋅ 31分钟前 ⋅ 0

压缩工具之zip-tar

zip 支持目录压缩。使用yum安装zip包,使用yum安装unzip包 zip 1.txt.zip 1.txt #将1.txt文件压缩,新生成的压缩文件为1.txt.zip,原文件保留 zip -r 123.zip 123/ #-r对目录操作。将123/目录...

ZHENG-JY ⋅ 31分钟前 ⋅ 0

Dubbo @Activate注解使用和实现解析

Activate注解标识一个扩展是否被激活和使用,可以放在定义的类上和方法上,dubbo用它在SPI扩张类定义上,标识这个扩展实现激活的条件和时机,先看下定义: /** * Activate * <p/> * ...

哲别0 ⋅ 38分钟前 ⋅ 0

6.5 zip压缩工具 tar打包 打包并压缩

1.tar tar命令格式 [-zjxcvfpP] filename tar -z:表示同时用gzip压缩。 -j:表示同时用bzip2压缩。 -J:表示同时用xz压缩。 -x:表示解包或者解压缩。 -t:表示查看tar包里的文件。 -c:表示建...

oschina130111 ⋅ 40分钟前 ⋅ 0

Linux系统工程狮养成记

如今的社会,随着时代的发展,出现了很多职业,像电子类,计算机类的专业,出现了各种各样的工程师,有算法工程师,java工程师,前端工程师,后台工程师,Linux工程师,运维工程师等等,不同...

六库科技 ⋅ 47分钟前 ⋅ 0

Linux 机器的渗透测试命令备忘表

如下是一份 Linux 机器的渗透测试备忘录,是在后期开发期间或者执行命令注入等操作时的一些典型命令,设计为测试人员进行本地枚举检查之用。 此外,你还可以从这儿(https://gbhackers.com/c...

寰宇01 ⋅ 48分钟前 ⋅ 0

windows 安装java开发环境,配置jdk

下载jdk安装文件 链接:https://pan.baidu.com/s/1UEKPjnAdMqNj612B39Pfsg 密码:ipqx 如果javac无法使用 1,检查环境变量名称中是否有空格。。。,去除后即可 2,将JAVA_HOME替换为原始路径...

阿豪boy ⋅ 50分钟前 ⋅ 0

简析log4j的实现方式

刚加入新公司,对日志的要求比较严格,对此特意花了几天时间看了一下log4j的源码,大概了解了一下log4j的实现方式,总结如下: log4j的实现分为两个步骤:log4j.xml的加载,logger的使用 这里...

zdatbit ⋅ 今天 ⋅ 0

win环境下jdk7与jdk8共存配置

1.jdk安装包 jdk安装包 安装步骤略 2.jdk等配置文件修改 在安装JDK1.8时(本机先安装jdk1.7再安装的jdk1.8),会将java.exe、javaw.exe、javaws.exe三个文件copy到了C:\Windows\System32,这...

泉天下 ⋅ 今天 ⋅ 0

windows profesional 2017 build problem

.net framework .... https://stackoverflow.com/questions/43330915/could-not-load-file-or-assembly-microsoft-build-frameworkvs-2017...

机油战士 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部