gpt4 book ai didi

java - MVC Web 应用程序如何在 Java 中工作?

转载 作者:行者123 更新时间:2023-12-02 06:19:13 25 4
gpt4 key购买 nike

当我们在应用程序中定义 View 、 Controller 、服务和 Dao 层时,数据如何在它们之间流动。

例如假设我们添加struts、spring、hibernate等。项目中的 jars 那么它们如何协同工作?

最佳答案

MVC 模式本身并没有描述您应该如何实现您的 Web 应用程序。它描述的是您的组件应如何相互交互,以实现具有可替换组件的模块化架构。

Martin Fowler 的 POEAA 详细解释了该模式并在 Wikipedia 。有关MVC的更多信息可以在Wikipedia中找到

使用 Java、Spring 和 Hibernate 的简单示例

在这种情况下,Spring MVC 提供了一个可插入框架,您可以在其中定义模型、 Controller 和 View ,而无需将它们耦合得太紧密(这是通过 IOC/DI 实现的)。

首先要注意的是 DispatcherServlet这是一个常规 servlet,通过处理所有传入的 HTTP 请求并将它们路由到各自的 Controller 来充当入口点。通过它们的映射查找适当的 Controller ,例如。通过 @RequestMapping注释。

Controller 的职责是确定应执行哪些操作来响应传入的请求。这通常是通过检查 header 、参数、 session 信息、路径来获取用户想要执行的操作的信息来完成的。这是一个非常简单的例子:

if (session.getAttribute("authenticated") == false) {
// we need to redirect to the login page
} else {
// everything was fine, so we do some business logic in the model
importantService.doSomethingReallyImportant(productOrder)
}

然后控制权被传递到发生业务逻辑的模型层。这可能包括任何更改模型状态的操作,例如更新密码、注册预订、清算交易等。在 Web 应用程序中,这些操作通常涉及持久性 API 的使用,例如。 hibernate 。

public class ImportantService {
public void doSomethingVeryImportant(final ProductOrder order) {
// Here we define the business operation
getCurrentBasket().add(order);

// An additional pseudo-persistence operation
getSession().update(order);
}
}

实际上,当模型完成后,控制权将返回到 Controller , Controller 决定如何更新 View (例如,重定向浏览器或只是简单地显示结果)页面),用户可以在其中看到他/她的操作结果。

关于java - MVC Web 应用程序如何在 Java 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21159580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com