【问题标题】:Custom web MVC for a legacy Java EE project用于遗留 Java EE 项目的自定义 Web MVC
【发布时间】:2011-01-07 09:02:27
【问题描述】:

我正在为一个项目创建自己的自定义 MVC Web 框架。这个项目有非常古老的代码库,其中一个 JSP 页面直接向另一个 JSP 提交表单,而路径也是硬编码的。现在这是一个大项目,放置 Struts 或 JSF 将需要相当长的时间。 所以我的建议是构建一个小型的自定义 MVC 框架并将许多现有的页面流转换到其中,并鼓励他们使用这个新的 MVC 框架开发更新的应用程序。

我想和大家一起回顾一下这是否有意义,或者我们应该直接使用标准 MVC 框架。

我的想法

1. Create one front controller servlet which will have URL pattern like /*.sm
2. This servlet reads one config file and creates a map whose key is requestedURI and value is the class name of the command bean.
3. upon intercepting any action request it reads the parameter map (request.getParameterMap()). This servlet refers the already built map, understand whose command bean is to be invoked? Creates an instance of this command bean.
4. pass the parameter map to this command bean and calls execute method.
5. if any exception is found, front controller servlet forwards the request to one global error page
6. if everything is fine, it then forwards the request to the expected URI (by removong .sm and replace it with .jsp)

你认为我在这里遗漏了什么吗?我知道我可以通过在配置文件中为每个请求页面提供错误页面来使它更花哨,但这些也可以在以后完成。

【问题讨论】:

    标签: java model-view-controller jsp servlets


    【解决方案1】:

    我认为您最终会重新发明轮子来滚动您自己的 MVC 框架。我知道制作自己的 API 很诱人,因为您不必习惯新的 API,而是创建自己的 API,您可以更轻松地使其适应您的特定用例。但由于它似乎是一个寿命很长的应用程序,您将不得不考虑这样一个事实,即您自己的框架(现在可能是最先进的)也将在几年内成为遗产。

    这就是调整流行框架之一派上用场的地方。新框架的创建者通常也希望其他人迁移,因此他们将(或应该)提供简单的集成或迁移选项,使其远离他们认为自己做得更好的框架(Spring 是一个很好的例子,因为它可以与现有的无缝集成Struts 应用程序,您可以逐步移动您的应用程序,而无需将旧应用程序放入垃圾箱)。此外,大多数当前框架都非常通用(这有时会成为一个问题,因为他们需要更多时间来了解它)并且可以适应几乎所有用例。

    所以我建议仔细审查现有的解决方案(您也可以从他们的设计决策和错误中学到很多东西),并且只有在它们都不符合您的要求时才开始制作自己的解决方案。

    【讨论】:

    • 你说得对,我很想推出我自己的框架。但从长远来看,这也将成为另一项遗产。达夫说得好。我现在会尝试更仔细地看。
    猜你喜欢
    • 2021-03-02
    • 2022-06-12
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    相关资源
    最近更新 更多