文档章节

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

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

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

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

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

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

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

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

© 著作权归作者所有

共有 人打赏支持
BK灬

BK灬

粉丝 46
博文 343
码字总数 142562
作品 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 下面多一点

这是我看到网上说的比较中肯的
😏
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
SpringMVC访问静态资源

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

有资本再款
2015/09/04
174
0
spring mvc 静态资源 404问题

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

动听的椰子
2016/01/24
107
0
(一)SpringMVC之配置DispatcherServlet的一些坑

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

Java攻城玩家
2018/06/03
0
0
【转】三分钟学会用SpringMVC搭建最小系统

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

枫叶摇曳
2017/07/31
233
1

没有更多内容

加载失败,请刷新页面

加载更多

Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
1
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
1
0
深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

onedotdot
昨天
1
0
MVC、MVCS、MVVM、MVP、VIPER等这么多架构模式哪一个好呢?

在项目开启阶段,其中一个很重要的环节就是选架构。 那么面对目前已知的这么多架构模式我们该怎么选择呢?这确实是个很让人头疼的问题! 下面我就在这里梳理一下目前常见的一些架构模式。 先...

Java干货分享
昨天
8
0
简单模仿配置文件的反射机制

//Student类 public class Student { public void love() { System.out.println("python"); } } //Tesy类 public class Tesy { public static void main(String[] args) throws Exceptio......

南桥北木
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部