【问题标题】:FrontController implementation for JSP pagesJSP 页面的 FrontController 实现
【发布时间】:2010-12-29 07:22:10
【问题描述】:

我正在开发一个带有几个 JSP 页面的简单网站。每个 jsp 都有一个动态数据,需要在将它们重新加载到浏览器之前从 XML 中读取这些数据。虽然像 Struts2 这样的 MVC 模式在这里更合适,但我不想为简单的 Web 应用程序实现它。

为此,我只想实现 FrontController 模式,它足以管理带有少量 Helper 类的 jsp 页面。

我想要的是为所有 JSP 页面提供一个集中式控制器。如果用户尝试访问任何 jsp 页面,那么它应该首先转到控制器。所以我尝试使用 URL 模式“/pages/*.jsp”实现一个 servlet,其中 /pages 包含 webcontent 中的所有 jsp 页面。

问题是,每次调用 .jsp 文件时都会调用控制器,但是当我尝试将其分发到 jsp 页面时(例如 /pages/homepage.jsp ) 它进入无限循环。很明显每次jsp页面调用都会再次来到controler。

那么对于这种情况,我们还有其他方法可以实现集中式控制器吗?

提前致谢。

【问题讨论】:

    标签: front-controller


    【解决方案1】:

    我猜你唯一的问题是你需要在处理每个请求之前读取一个 XML 文件。

    如果只是这种情况,那么过滤器最适合。

    但是,如果需要做的事情更多,并且您确实需要对所有请求进行集中控制,而您无法执行以下任何操作:-

    1. Struts(你的 项目或大或小,但使用 预定义和经过验证的模式是 总是有用的)。

    2. 在您的控制器中放置一个映射 逻辑 URL 和物理 URL 现在把你的映射到逻辑 网址而不是物理网址。

    【讨论】:

    • 是的,过滤器是一种实现方式,但过滤器有其自身的意义,但不是作为控制器。为什么我没有选择 struts,因为它增加了我的应用程序内存大小以及方法调用的开销,因为类在应用程序中不断增长。
    • 所以我调整了第二点,应用程序指向jsp页面的逻辑路径,控制器调度到jsp逻辑路径对应的物理映射。谢谢
    猜你喜欢
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    • 2015-01-08
    • 1970-01-01
    相关资源
    最近更新 更多