Web应用程序工作流中的Controller Servlet

时间:2013-02-15 09:19:13

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

我想知道在JBoss / Weblogic / Webphere上部署的任何Web应用程序的起点是什么。

例如,如果您使用基于struts的应用程序,则起点是ActionServlets扮演控制器的角色,该角色管理所有传入请求。我确信控制器依赖于框架。

如果是这样,请帮助我识别除Struts,Flext等之外的流行框架,我可以将ActionServlet设为我的控制器。

我脑子里还有一个问题,想知道Application Server有什么特定的东西吗?如果是这样,任何见解都会受到高度赞赏。

提前致谢...

1 个答案:

答案 0 :(得分:1)

在您澄清之后,我将尝试写下如何构建简单的Web应用程序(没有框架)

  1. 一个启动servlet,只初始化全局内容并检查资源(db pool,jms)。只有它的init()方法实现并加载了0阶。
  2. 一个登录servlet,以jsp为主视图。
  3. 一组欢迎页面,将用户重定向到登录servlet(在web.xml中)
  4. 一个仪表板servlet,带有一个简单的jsp作为浏览菜单的视图,为应用程序提供了一个很好的起点。
  5. 在此之后,每个动作/菜单都会映射到一个或多个servlet,执行所有的bacground并重定向到jsp视图。

    通常我将每个请求都管理到一个servlet,doGet()或doPost()方法中,但它不是强制性的,取决于我在做什么。

    例如,如果您必须生成报告并且此生成需要时间,则servlet只需在某处(JMS队列或启动Quartz任务)将报告请求置于其中,并通过礼貌页面向浏览器返回控制权,指出请求已排队。

    在这种情况下,来自Web UI的单个请求在某种情况下会在功能上影响我的“servlet”,在这种情况下,我使用RequestDispatcher实用程序链接请求。

    这样做可能会导致代码重复,因此必须对业务类树进行良好的设计。 servlet之间共享的公共业务代码(充当用户输入,业务逻辑和数据逻辑之间的粘合剂 - 就像控制器^^)