最佳实践,java web app,在哪里放jsp文件?

时间:2014-01-04 13:07:48

标签: java google-app-engine jsp servlets

我正在使用谷歌应用程序引擎开发java web应用程序,我的问题是我的所有jsp文件都可以到达 http://localhost:8888/namefile.jsp,,我将所有jsp文件放在war文件夹中

我应该把jsp文件放在哪里以避免这种情况? 或者我应该修改web.xml修改url映射?

这是我的web.xml文件

<servlet>
 <servlet-name>frontController</servlet-name>
 <servlet-class>com.myapp.frontcontroller.FrontController</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>frontController</servlet-name>
    <url-pattern>/myapp/*</url-pattern>
</servlet-mapping>


<welcome-file-list>
    <welcome-file>home.jsp</welcome-file>
</welcome-file-list>
提前谢谢。

2 个答案:

答案 0 :(得分:1)

您有几个选择,可以根据您的要求使用其中任何一个:

  • 您可以将文件放在WEB-INF文件夹中。默认情况下,其中的文件夹/文件将不可用。您需要相应地将请求重定向和/或转发到写文件。

  • 这不仅仅是JSP文件,还有可以直接访问的servlet。理想情况下,您希望保护URL模式,并确保只有授权用户(即具有特定角色的用户)才能访问其下的servlet /文件夹。为此,GAE使用security-constraint文件中的标准web.xml。阅读https://developers.google.com/appengine/docs/java/config/webxml#Security_and_Authentication

  • 最后,您还可以查看Servlet过滤器以满足您的要求。您可以使用全局过滤器来检查用户是否已登录,然后才能继续访问Web资源。过滤器还可以帮助您执行日志记录以检查谁正在访问您的应用程序以及其他横切问题等。

答案 1 :(得分:0)

公共Jsp文件应位于项目的根目录中,私有jsp文件应位于WEB-INF文件夹中,因为WEB-INF下的内容无法公开访问。