2010-10-08 44 views

回答

2

没有指向这个的URL。 WEB-INF内的所有内容均未向外界公开。

相反,如果你组织了WAR布局是这样的:

foo.war 
-->/WEB-INF 
    -->/classes (..) 
    -->web.xml 
-->/js 
    -->bar.js 
-->index.jsp 

然后,你可以访问你的JavaScript作为http://example.com/blah/js/bar.js

P.S.您将无法访问index.jsp,这是您现在设置的方式。

+0

谢谢。我一定误解了有关使用maven-war-plugin进行打包的链接。 – Steven 2010-10-08 15:20:11

3

您必须NEVERJSWEB-INF目录

正如Servlet规范中所写的,无论你放在目录中,WEB-INF都不会直接提供给外部世界。只有本地应用程序资源去那里。

所以如果你想要一些JS文件可以从外部访问,直接放在WAR的ROOT。事情是这样的:

foo.war 
-->/js/ 
    -->bar.js 
-->/WEB-INF 
    -->internal resources here 

的URL访问JS将是这样的:

http://YOUR_IP:8080/foo/js/bar.js 

当然,这可能取决于你如何设置你的应用服务器上部署的战争。

但是把JSP文件内WEB-INF目录,只有从Servlet的的东西,如调用它们(你不能直接访问它们要么):

RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("WEB-INF/index.jsp"); 

这如果您不希望人们直接从外部访问您的JSP文件,那么这是常见的做法。

+0

谢谢。我一定误解了有关使用maven-war-plugin进行打包的链接。 – Steven 2010-10-08 15:20:36