我想知道部署在 JBoss/Weblogic/Webphere 上的任何 Web 应用程序的起点是什么。
例如,如果您采用基于 struts 的应用程序,则起点是 ActionServlet 扮演 Controller 的角色,管理所有传入请求。我确信 Controller 取决于框架。
如果是这样,请帮助我识别除 Struts、Flext 等之外的流行框架,我可以在这些框架中假设 ActionServlet 作为我的 Controller 。
我脑海中仍然有一个问题,想知道应用程序服务器有什么特定的东西吗?如果是这样,任何见解都将受到高度赞赏。
提前致谢...
最佳答案
在您澄清之后,我将尝试写下如何构建简单的网络应用程序(没有框架)
- 启动 servlet,仅初始化全局内容并检查资源(数据库池、jms)。只是它的 init() 方法实现并加载顺序为 0。
- 一个登录 servlet,以登录 jsp 作为其主视图。
- 一组将用户重定向到登录 servlet(在 web.xml 中)的欢迎页面
- 一个仪表板 servlet,使用一个简单的 jsp 作为仪表菜单的 View ,并为应用程序提供了一个很好的起点。
此后,每个操作/菜单都将映射到一个或多个 servlet,完成所有免费工作并重定向到 jsp View 。
通常我将每个请求管理到单个 servlet、doGet() 或 doPost() 方法中,但这不是强制性的,取决于我在做什么。
例如,如果您必须生成报告,并且生成过程需要时间,则 servlet 只需在某处排队报告请求(JMS 队列或启动 Quartz 任务),然后将控制权交还给浏览器,并显示一个礼貌页面,说明该请求已排队。
在某些情况下,来自 Web UI 的单个请求在功能上会影响我的更多“servlet”,在这种情况下,我使用 RequestDispatcher 实用程序链接请求。
这样做可能会导致代码重复,因此必须良好地设计业务类树。 Servlet 之间共享通用业务代码(充当用户输入、业务逻辑和数据逻辑之间的粘合剂 - 就像 Controller 一样 ^^)
关于java - Web 应用程序工作流程中的 Controller Servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14891437/