对于我正在处理的当前项目,我决定使用前端控制器模式。我一直认为前端控制器应该(最终)负责 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 应用程序启动之前运行。