0

我正在使用 java 创建一个 Web 应用程序。我对此很陌生,我有以下问题:

  1. 我有jsp前端的文件。现在,每当我必须做一个庞大的后端函数时,我可以创建一个 servlet 并从 jsp 执行 get 请求,或者我可以创建一个简单的 java 对象,在 jsp 中实例化它并将其用于支持的函数。哪个更好,为什么?

  2. 每个后端功能都需要连接到数据库。我只想为整个会话和所有jsp页面的用户执行一次。它是如何完成的?

4

3 回答 3

2
  1. 这两个都不是。阅读有关 MVC 模式的信息。使来自浏览器的每个请求都转到一个 servlet。使这个 servlet 调用后端的服务并填充存储在请求属性中的 Java Bean。然后将请求分派给 JSP。JSP 的唯一职责应该是从请求中的 bean 获取数据并生成页面的 HTML 标记(借助 JSTL 和自定义标记。没有 scriptlet)。

  2. 不应将数据库连接保留给单个用户。如果您有 1000 个并发用户每 30 秒执行一个请求,那么您将需要 1000 个连接,并且大部分时间都处于空闲状态。这超出了数据库可以支持的范围,并且这些连接无论如何都可能超时或失败。阅读有关连接池的信息,并使用一个:每个需要连接的请求都从池中获取一个,完成其工作,然后关闭连接,这实际上将其返回给它来自的池,准备好为另一个请求提供服务。

于 2012-09-20T06:05:19.203 回答
0

对于问题 1:

如果不需要 servlet,为什么要使用它?只需在一个普通的 Java 类中完成繁重的工作。通过这种方式,您将在工作流程中减少依赖关系。

对于问题 2:

大多数应用服务器现在都内置了对池连接的支持。强烈建议您使用此功能。现在,您可以通过多种方式继续前进。最简单和 IMO 最好的方法是创建一个与数据库相关的对象,它将处理连接打开/关闭、执行更新/删除/选择功能,并在整个应用程序中使用它

于 2012-09-20T06:06:31.163 回答
0

我认为如果您选择一个框架,例如Spring (您可以在此处找到教程列表),您最终会得到更清晰的 JSP 文件和更结构化的项目。春天也应该阻止你重新发明轮子,从头开始一切。

关于你的第二个问题,我不明白你的问题。如果您想为每个用户打开一个连接,那么您将消耗可用于其他更有用事物的资源。这样的系统也不会扩大规模。为此,我推荐另一个框架Hibernate,您可以在数据访问层中使用它(在此处阅读有关 MVC(模型视图控制器)设计模式的更多信息)来管理数据库事务。

于 2012-09-20T06:07:32.267 回答