gpt4 book ai didi

Java Servlets + 状态 = 如何?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:54:59 24 4
gpt4 key购买 nike

在我的 web 应用程序中,我希望在它的所有“页面”中都有某些必要的东西,例如与数据库的连接、用户信息、模板处理等。直到最近我才有一个抽象的 servlet,它会初始化以上所有内容都在其 doGetdoPost 方法中,定义抽象方法 doLocalLogic(HttpServletRequest req, HttpServletResponse res) 并从doGet/doPost 方法。所有的扩展类都将享有数据库连接、用户信息等。不幸的是,事实证明这是不好的做法。

我现在想的是创建一个抽象类来执行所有这些操作,我的 servlet 中的所有逻辑都将转移到此类的子类中,而 servlet 将只创建这些子类的实例。

但是,这会导致在我的应用中为每个页面多创建一个类。此外,当您创建一个新的 servlet 时,您没有任何需要覆盖的抽象方法形式的线索,就像您拥有一个抽象 servlet 一样。

有更好的方法吗?

最佳答案

首先,我认为只要您通过参数而不是通过字段(线程在请求​​/线程之间共享线程)传递本地逻辑,您使用 doLocalLogic() 的方法就不错:

public void doLocalLogic(
Connection connection,
UserInformation user,
//...
HttpServletRequest req,
HttpServletResponse res
)

唯一的问题是,即使您在 servlet 中不需要它们,您也需要准备大量数据。而且它不可扩展。

您真正需要的是一个更健壮的……框架。首先,您可能需要一个 Web 框架来避免直接编码到 servlet API。其次,您需要像 Spring 这样的 IoC 来管理您的依赖项。每个服务都不需要急切地创建它们并传递它们,而是只请求所需的依赖项。

关于Java Servlets + 状态 = 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13433728/

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