Java Web应用程序的MVC应用[重复]

Posted

技术标签:

【中文标题】Java Web应用程序的MVC应用[重复]【英文标题】:Application of MVC for java web applications [duplicate] 【发布时间】:2021-04-05 10:40:21 【问题描述】:

我正在开发一个动态网络应用程序。 我有一个视图,它是一个 jsp 页面。我需要一个 Gui 控制器和一个应用程序控制器。 应用程序控制器执行用例的逻辑,例如 gui 控制器。向 jsp 发送错误消息或更改请求登录用户的视图。

我需要有关此 gui 控制器的更多信息,例如是一个 servlet 还是一个简单的 java 类?这个gui控制器如何向jsp页面发送消息?

你能用一些例子解释一下这个 gui 控制器是如何工作的吗?

【问题讨论】:

【参考方案1】:

首先,像 MVC 这样的东西都是关于 separation of concerns 的。您有不同的组件处理不同的事情,这具有一些优点,例如可维护性、可扩展性、可重用性、更少的代码重复等。

您已经提到了 GUI 控制器和应用程序控制器。这就是关注点分离。您现在有一个组件处理表示逻辑,一个组件处理应用程序逻辑。

您询问的是 GUI 控制器。根据您的应用程序的大小,您可以使用 servlet、纯 Java 类或 web frameworks(如 Struts 或 SpringMVC)来构建它。

实现响应请求的 Java 类的标准是 servlet,因此您可以使用 servlet 编写 GUI 控制器。您可以找到一个使用 servlet here 实现 MVC 的迷你示例。目的是处理从用户收到的请求,从请求中提取参数,将该数据发送到实现您的用例的应用程序控制器,该控制器返回结果,然后您的 servlet 将使用该结果为您的 JSP 页面构建数据,选择其中一个 JSP 页面执行,并对其进行控制以构建响应。

要将数据发送到 JSP,servlet 将使用RequestDispatcher,通常是request attributes。

您还可以使用简单的 java 类创建 GUI 控制器,但您仍需要一个 servlet 作为入口点,然后将控制权委托给您的 Java 类以处理请求。事实上,这就是各种 Web 框架的工作方式:它们注册一个调度程序 servlet,该 servlet 获取请求并委托给要处理的框架类。

您可以通过任何方式实现此表示控制器,只需记住关注点分离部分即可。诸如HttpServletRequestHttpServletRequestRequestDispatcher 或 JSP 路径之类的东西不应泄漏到您的应用程序控制器或更深地到您的模型类中,因为这不是他们应该关心的事情。

【讨论】:

以上是关于Java Web应用程序的MVC应用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

发布 MVC3 应用程序后,是啥导致 obj 输出文件夹下的 web.config 重复?

使用mvc模式设计的web应用程序具有以下优点,除了?

C#/MVC Web 应用程序 - 来自 JSON 的动态对象 [重复]

桌面(非 Web)应用程序中的 MVC 框架

从 ASP.NET MVC 5 移植到 dotnet core 2:可能替代 System.Web.Mvc.HttpStatusCodeResult [重复]

java web008——MVC模式