为什么我可以直接访问我的JSP?

时间:2013-08-14 15:22:55

标签: google-app-engine jsp

google-app-engine.xml中的资源/静态配置...

    <resource-files>
    <include path="/data/**" />
</resource-files>
<static-files>
    <include path="/images/**" />
    <include path="/bootstrap/**" />
    <include path="/views/error/*.html" />
    <include path="/favicon.ico" />
</static-files>

Directory view of my project..

通过使用http://localhost:8080/views/SetNewPassword.jsp,我可以直接访问JSP。使用我当前的配置,这不应该被隐藏吗?

(使用maven设置与本地测试/ dev服务器进行谷歌应用引擎)

2 个答案:

答案 0 :(得分:2)

保护WEB-INF文件夹下的jsp免受直接访问。你的jsp'SetNewPassword.jsp'不在'WEB-INF'下,所以我想它可以直接访问,除非我遗漏了什么。

答案 1 :(得分:1)

因为JSP不是静态文件。它们被编译为servlet并在服务器端执行。

引自the documentation

  

许多Web应用程序都有直接提供给用户浏览器的文件,例如图像,CSS样式表或浏览器JavaScript代码。这些被称为静态文件,因为它们不会更改,并且可以从专用于静态内容的Web服务器中受益。 App Engine提供来自与应用程序服务器分开的专用服务器和缓存的静态文件。

     

使用文件系统的应用程序代码可访问的文件称为资源文件。这些文件与应用程序一起存储在应用程序服务器上。

     

默认情况下,WAR中的所有文件都被视为静态文件和资源文件,JSP文件(编译为servlet类并映射到URL路径)和WEB-INF /目录中的文件除外,它们是从未作为静态文件提供,并始终作为资源文件提供给应用程序。

相关问题