java - 在 Java MVC Web 应用程序中隐藏 View Servlet?

标签 java model-view-controller web-applications servlets

我正在使用一个非常简单的 MVC 框架,Bear Bibeault's Front Man ,对于那些不熟悉的人来说,它与 Spring MVC 非常相似(至少在概念上)。

对于大多数情况,我使用 JSP 作为我的 View 。为了防止直接访问 View ,我将 JSP 文件放在 WEB-INF 目录中。

但是,在某些情况下我需要使用 servlet 来表示我的 View 。例如,我有一个生成 PDF 的 View servlet,您不应该在 JSP 中执行此操作。我遇到的问题是可以通过在 URL 中键入 View 名称来直接访问这些 View 。授予 View 抛出异常,因为它在请求中没有正确的模型(因为它没有命中模型构建页面 Controller ),但我希望 View servlet 对用户隐藏,就像我的 JSP View 一样是。

如何防止直接访问 View servlet?

<小时/>

相关问题:

Protecting internal view layer template pages in servlet applications

最佳答案

第一步是使用适当的安全模型来防止访问您的文件。 您应该使用 web.xml 文件中的 & 元素来定义哪些目录可以访问,而不是使用 WEB-INF 目录作为 URL 无法访问的副作用(顺便说一句,这不能保证适用于所有 Web 服务器)或者无法通过直接 URL 访问。

完成此操作后,您应该能够将 PDF View 映射到 URL,通过 web.xml 文件保护该 URL,然后从 MVC Controller /操作转发到 View (就像转发一样)到您的 JSP)

参见the Sun site有关安全约束的更多信息。

关于java - 在 Java MVC Web 应用程序中隐藏 View Servlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1278006/

相关文章:

java - 消费者在我的简单 Java 生产者/消费者/队列代码中不起作用

java - 如何向 javafx-maven-plugin 创建的 exe 安装程序添加许可证?

php - 如何使 CakePHP 重定向到不同的操作/ Controller ?

java - Pivotal TC Server 启动,但使用 Spring 构建的网站未加载(之前是)

javascript - 如何在 React App 完成加载之前显示全页加载器/旋转器

java - JPA @repository @Query 可以处理空实体吗?

java - 是否有与 Clojure 的 if-let 等效的 Java?

javascript - 如何在 mvc 和 JavaScript 中使用异步获取发出发布请求?

mysql - 向 MySQL 表添加大列(VARCHAR)会对性能产生重大影响吗?

database - 如何实现在线音频库(将音频存储在数据库或文件中)