【问题标题】:best practice, java web app, where to put jsp files?最佳实践,java web 应用程序,将 jsp 文件放在哪里?
【发布时间】:2014-01-22 04:05:48
【问题描述】:

我正在使用 google app engine 开发 java web app,我的问题是我的所有 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>

提前致谢。

【问题讨论】:

  • 这有什么问题?你有遇到什么麻烦吗?
  • 不是,但是例如,如果在我的 jsp 中我从 HttpRequest 读取参数,那么任何人都可以将参数传递到我的页面localhost:8888/namefile.jsp?param = bala,我认为这不是一个大问题,因为我做了所有控制..但我真的不喜欢这个。
  • 如果你使用“post”方法而不是“get”,你不会遇到任何麻烦。
  • 感谢您的帮助!

标签: java google-app-engine jsp servlets


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    公共的jsp文件应该在项目的根目录下,私有的jsp文件应该在WEB-INF文件夹中,因为WEB-INF下的东西是不能公开访问的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多