如何在WEB-INF JSP / Struts中获取资源

时间:2012-06-24 21:19:03

标签: javascript jsp struts2

WEB-INF中名为'jsp'的文件夹中有JSP页面。那些页面需要一些javascript文件。在JSP页面中,javascript文件被称为

<script type="text/javascript" src="../../app.lib/jQuery-v-1-7-2.js"></script> 

但浏览器无法访问此资源。对web-inf内的JSP页面的所有请求都经过一个动作,并且已经为名为“secure”的页面提供了单独的名称空间。

让我们说,这个account.jsp页面需要一个javascript文件,该文件位于'web'文件夹中名为'app.lib'的文件夹中。(在web-inf之外)。

(1)我想知道一种使用struts操作或其他jsp功能将该javascript文件检索到account.jsp页面的方法。
(2)第二个问题是:可以说,有些图像应该被保护,应用程序本身应该能够在请求时将它们发送到浏览器。换句话说,文件夹中的图像WEB-INF,然后如何在account.jsp中访问它们? 这是web.xml(为清晰视图删除了会话配置和欢迎文件列表标签)
<?xml version="1.0" encoding="UTF-8"?> <web-app.......>
<filter> <filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

这是项目结构
enter image description here

1 个答案:

答案 0 :(得分:-1)

不要将JavaScript文件放在WEB-INF文件夹中。保存在WEB-INF中的JSP页面由servlet-container访问,处理,然后通过servlet呈现给客户端,servlet可以访问WEB-INF中的文件。 JavaScript文件是客户端资源,由于客户端无法访问WEB-INF内的任何资源,因此它们必须位于该文件夹之外。

通常,将JavaScript文件放在名为“js”的文件夹中是很常见的,如下所示:

-/js
    - actions.js
-/WEB-INF
    - /jsp
        - abc.jsp

顺便说一句,由于JavaScript是客户端,即使您遇到将它们存储在WEB-INF文件夹中并使用servlet引擎处理它们的麻烦,任何用户仍然可以访问该资源URL并查看源。从本质上讲,您不会从中获益,只会在维护和额外的开发开销方面产生成本。