Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 为什么我可以直接访问我的JSP?_Google App Engine_Jsp - Fatal编程技术网

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

Google app engine 为什么我可以直接访问我的JSP?,google-app-engine,jsp,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="/v

我的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>

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


(使用maven安装程序和google app engine的本地测试/开发服务器)

jsp的WEB-INF文件夹受到保护,不允许直接访问。您的jsp“SetNewPassword.jsp”不在“WEB-INF”下,因此我认为它可以直接访问,除非我遗漏了什么。

jsp的WEB-INF下文件夹受到保护,无法直接访问。您的jsp“SetNewPassword.jsp”不在“WEB-INF”下,因此我认为它可以直接访问,除非我遗漏了什么。

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

引自:

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

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

默认情况下,WAR中的所有文件都被视为静态文件和资源文件,但JSP文件除外,JSP文件被编译成servlet类并映射到URL路径,WEB-INF/目录中的文件从不作为静态文件使用,并且始终作为资源文件供应用程序使用


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

引自:

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

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

默认情况下,WAR中的所有文件都被视为静态文件和资源文件,但JSP文件除外,JSP文件被编译成servlet类并映射到URL路径,WEB-INF/目录中的文件从不作为静态文件使用,并且始终作为资源文件供应用程序使用


对的所以我应该能够有一个指向控制器的映射,然后控制器返回编译/呈现的JSP,对吗?主要目标是希望JSP有一个入口点。。“除了JSP文件,它们被编译成servlet类并映射到URL路径”在本例中,我是否控制它们映射到的URL路径?我可以禁用此功能吗?您可以将它们放在WEB-INF下,这样它们就不能直接访问,而只能由控制器访问。正确。所以我应该能够有一个指向控制器的映射,然后控制器返回编译/呈现的JSP,对吗?主要目标是希望JSP有一个入口点。。“除了JSP文件,它们被编译成servlet类并映射到URL路径”在本例中,我是否控制它们映射到的URL路径?我可以禁用此功能吗?您可以将它们放在WEB-INF下,这样它们就不能直接访问,而只能由控制器访问。您实际上想做什么?隐藏JSP文件的目的是什么?为什么仅仅要求登录并检查每个JSP顶部的会话就不够了呢?因为GAE中的大多数东西通常都有一个简单的XML配置解决方案。静态/资源映射显示了这一点。SetNewPassword.jsp的功能需要一个令牌,并且没有“真正的”安全问题,但我只是想在可能的情况下更容易地实现。不过,感谢您的建议,我倾向于在加载JSP时确保令牌存在。谢谢,你到底想做什么?隐藏JSP文件的目的是什么?为什么仅仅要求登录并检查每个JSP顶部的会话就不够了呢?因为GAE中的大多数东西通常都有一个简单的XML配置解决方案。静态/资源映射显示了这一点。SetNewPassword.jsp的功能需要一个令牌,并且没有“真正的”安全问题,但我只是想在可能的情况下更容易地实现。不过,感谢您的建议,我倾向于在加载JSP时确保令牌存在。谢谢