Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将业务逻辑放在JavaBean中?_Java_Model View Controller_Jsp_Servlets - Fatal编程技术网

将业务逻辑放在JavaBean中?

将业务逻辑放在JavaBean中?,java,model-view-controller,jsp,servlets,Java,Model View Controller,Jsp,Servlets,我是,我发现了以下陈述: Java服务器页面中的MVC 现在我们有了一个方便的 建筑要分开看,怎么办 我们能利用这一点吗?Java服务器 页面(JSP)变得更加有趣 因为HTML内容可以是 与Java业务分离 物体。JSP还可以使用Java 豆子业务逻辑可以放在JavaBean中。如果 设计架构正确,是一个网络 设计师可以在桌面上使用HTML JSP站点,而不干扰 Java开发者 有趣的是,在我的教科书中,我引用了以下几句话: 在MVC架构中。。。这个 原始请求总是由 一个servletserv

我是,我发现了以下陈述:

Java服务器页面中的MVC

现在我们有了一个方便的 建筑要分开看,怎么办 我们能利用这一点吗?Java服务器 页面(JSP)变得更加有趣 因为HTML内容可以是 与Java业务分离 物体。JSP还可以使用Java 豆子业务逻辑可以放在JavaBean中。如果 设计架构正确,是一个网络 设计师可以在桌面上使用HTML JSP站点,而不干扰 Java开发者

有趣的是,在我的教科书中,我引用了以下几句话:

在MVC架构中。。。这个 原始请求总是由 一个servletservlet调用业务逻辑和数据访问代码,并创建bean来表示结果(这就是模型)。然后 servlet决定哪个Java服务器页面 是否适合呈现这些内容 具体结果和未来展望 请求(JSP就是视图)。 servlet决定什么业务 逻辑代码适用于哪个JSP 应提交结果(报告) servlet是控制器)


这两种说法似乎有点矛盾。使用bean的最佳方式是什么:我们应该将业务逻辑放在bean中,还是只将结果放在bean中?bean在哪些方面不足以表示模型?

第二条语句基本上讲述了两个JavaBean:一个用于业务逻辑,另一个用于模型。因此,是的,业务逻辑仍然可以放在javabeans中。业务逻辑的javabean可以将模型的javabean封装为其属性

public class User {
    private Long id;
    private String name;
    // ...
}

public class UserManager {
    private User user;
    // ...

    public void login() {
        // ...
    }

    public void logout() {
        // ...
    }
}

将业务逻辑放在后缀为Manager的类中也是很常见的。虽然有些人将业务逻辑放在数据对象bean本身上,但我发现当数据对象上的方法只执行不依赖于任何外部依赖项的简单函数时,这种逻辑是最好的。我将所有其余的业务逻辑放在一个managerbean中,该bean能够使用多个数据对象javabean和其他外部依赖项来遵循业务逻辑。例如,AccountBean将包含account字段和一些简单的方法,这些方法使用这些字段来计算和返回值,或者格式化字段。所有的业务逻辑都在一个管理器中,可能是一个AccountManagerBean。

您知道bean可能不适合表示模型的任何情况吗?我还没有遇到足够的情况来提供一个好的示例,但是什么样的模型示例不适合bean呢?此外:JSP中使用的业务bean是否与使用的模型bean一样?我没有看到bean可能不适合表示模型的情况。是的,您可以用同样的方式在JSP中使用它;以访问属性。控制器将根据请求调用这些操作。您的JSP是使用管理器bean还是只使用模型bean?您的视图希望在JSP后面有一些东西,在Struts和Action类中,在某些地方是servlet类,其他框架使用其他东西。在该Java类中,您可以使用管理器查找、更新、添加、删除数据bean。在JSP中,最好尽量避免使用Java,这样我只会使用视图数据javabean,而不使用管理器。因为我觉得在大多数关于JavaBeans的文本中,他们似乎强调它们是简单的数据容器,几乎应该只包含getter和setter,这与我对buissinessobject的外观的看法不符。我完全尊重你的回答!我只是想了解一下您对JavaBeans的想法,即使用getter和setter设置这些“限制”,然后添加其他方法来添加逻辑。也许我误解了JavaBeans的全部内容?我真的不知道-o