• 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件(转)


    在有Struts2部署的Java EE环境中,我们一般把jsp页面写在WebRootWEB-INFcontent 目录下,这样使得jsp页面一定需要struts的控制转发才可访问,提高页面安全性。

    PS:作为一个怀旧的人,依旧使用Eclipse,意思一样只是把JSP页面换到WebContentWEB-INF。

    但是今天在jsp页面中应用WebRoot目录中的css,js文件发现十分困难,先看看我的文件结构:

    目标是在index.jsp中访问default.css。

    defautl.css是在index.jsp目录的父目录的父目录的CSS目录下。所以我这样写:

    ps:空格为故意添加,不知为何会自动变成博客园的网址

    在Eclipes中也出现超链接提示,说明目录正确,但是结果失败。

    查询资料后,在百度百科中看到:

    http://baike.baidu.com/view/1745468.htm

     TomCat 服务器下的WEB-INF文件夹是一个非常安全的文件,在页面中不能直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。

    从上面的实验可以看出,不但是直接访问,使用” ../ ../ “之类的间接访问也不能成功。

    在此多方查询资料之后,尝试使用如下方法访问:

    原理很简单,变量path值为项目根目录,而css就是此目录的子目录,自然可以访问。

    可惜结果还是错,思考之,el表达式的${}是以page,request,session,application的顺序寻找匹配的项,而path并不在这个范围之内,也许在java脚本中直接定义的对象是局部作用域,而不是page作用域?可惜百度之后难以找到相关资料,不过结论应该是没错的。

    既然EL表达式无法取出,那么java脚本应该可以达到目的吧?尝试如下:

    果不其然,页面成功读出了css文件中的样式,达到目的。不过此页面中存在java脚本,不够规范,查询资料后,用以下纯EL表达式实现:

    先将ContextPath放如page中,再使用el表达式取出,问题得以解决。

    WEB-INF目录下加载CSS和JS问题?????

    http://topic.csdn.net/u/20100420/14/c4efb68c-ca03-46b9-8277-126bd1290ebe.html

    此问题中,CSS和JS也在WEB-INF下,多方试验后我还是没能解决,望高手解答。

    转自:http://www.cnblogs.com/coolhwm/archive/2011/11/27/2265272.html

  • 相关阅读:
    React 学习笔记
    需要充实自己的课外东西
    近期计划
    测试TinyMCE编辑器
    我的第二篇博客园随笔
    博客已搬运至https://wz71014q.github.io
    关于HTTPS通信机制的笔记
    JS中数组的一些笔记
    Three学习之曲线
    Three入门学习笔记整理
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/6650288.html
Copyright © 2020-2023  润新知