解决/WEB-INF目录下的jsp页面引入webRoot下的Jscss和图片的问题

Posted Deer家的鹿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决/WEB-INF目录下的jsp页面引入webRoot下的Jscss和图片的问题相关的知识,希望对你有一定的参考价值。

转自:http://blog.csdn.net/qq_18875541/article/details/69390871

 

通常把jsp页面放在webRoot的/WEB-INF下可以防止访问者直接输入页面。

而webRoot的/WEB-INF下的页面是受保护的,用户无法通过形如http://localhost:8080/test/webRoot/WEB-INF/content/xx.jsp来访问,他们的访问都必须透过struts处理请求才能达到。

然而,当把页面放在/web-inf下面时,JSP页面还是避免不了跟“外部”的js,css,图片“交互”,因为需要引入一些webRoot/css, webRoot/js, webRoot/images,而此时很容易引入失败,一般来说,此时用相对路径行不通了,所以必须使用绝对路径!下面一一总结。

一、引入webRoot/css

<link href="<%=request.getContextPath()%>/css/default.css" rel="stylesheet" type="text/css"/>  

 这个<%=request.getContextPath()%>即为/hh_test(项目名称),而<%=request.getContextPath()%>/css则相当于用绝对路径直接定位到了webRoot/css.

二、引入webRoot/js

<script type="text/javascript"  language="javascript" src="<%=request.getContextPath()%>/js/jquery-1.4.4.min.js"></script>  

三、引入webRoot/images

<img src="<%=request.getContextPath()%>/images/4.gif"  alt="加载外部图片" />  

 

小结:最好把jsp页面放在/WEB-INF下,而jsp页面引入"外部”js,css,images时,必须获取项目的根路径,再加上/css(或/js 或/images)即使用绝对路径的方法,而不是相对路径的方法,才能访问到放置在webRoot下的资源!

 

以上是关于解决/WEB-INF目录下的jsp页面引入webRoot下的Jscss和图片的问题的主要内容,如果未能解决你的问题,请参考以下文章

在java中怎么访问web-inf 目录下的jsp页面。

web-inf下的jsp怎么访问

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

解决href标签跳转到WEB-INF下的jsp页面的办法

怎么样让servlet访问web-inf下的网页或jsp文件

webapp vs WEB-INF下的spring mvc和jsp页面位置