Java Servlet - Front Controller 问题(Listeners & Context)



对于我正在处理的当前项目,我决定使用前端控制器模式。我一直认为前端控制器应该(最终)负责 Web 应用程序中发生的一切。侦听器会违反此模式吗?

public class MyDatabase implements ServletContextListener {
    public void contextInitialized(ServletContextEvent event) {
        ...
        String driver = context.getInitParameter("driver");
    }
}

当然,这似乎比:

public class FrontController extends HttpServlet {
    public void service (....) {
        MyDatabase db = new MyDatabase(context.getInitParameter("driver"));
    }
}

这是一个非常简单的例子;在实践中会有更多的参数。那么,哪个代码片段被认为更忠实于前端控制器模式——从FrontController向下传递配置,还是直接将配置提供给类?

由于我是Java的新手,我正在尝试在不使用框架的情况下学习servlet(暂时)。

前端控制器的主要目的是为处理请求提供一个集中的入口点,从而

控制跨一组相关页面的导航(例如, 在线购买中可能会使用多个页面)从正面 控制器比它使各个页面负责 导航

将资源初始化的责任与前端控制器模式分开是好的,您可以为此选择一个正确的位置,因为ServletContextListener负责接收有关 ServletContext 生命周期的通知事件。类ServletContextListener代码将在 Web 应用程序启动之前运行。

最新更新