我正在使用java创建一个Web应用程序。我对此很陌生,我有以下问题:
我有前端的jsp
个文件。现在,每当我必须执行庞大的后端函数时,我可以创建一个servlet并从jsp执行get请求,或者我可以创建一个简单的java对象,在jsp中实例化它并将其用于支持的函数。
哪一个更好,为什么?
每个后端功能都需要连接到数据库。我想对整个会话和所有jsp
页面的用户只执行一次。怎么做?
答案 0 :(得分:2)
这两者都不是。阅读有关MVC模式的信息。使来自浏览器的每个请求都转到servlet。使这个servlet调用后端服务并填充存储在请求属性中的Java Bean。然后将请求分派给JSP。 JSP的唯一责任应该是从请求中的bean获取数据并生成页面的HTML标记(借助JSTL和自定义标记。没有scriptlet)。
不应将数据库连接保留给单个用户。如果有1000个并发用户每30秒执行一次请求,则需要1000个连接,大部分时间都处于空闲状态。这不仅仅是数据库可以支持的,而且无论如何这些连接都可能超时或失败。阅读有关连接池的信息,并使用一个:每个需要连接的请求从池中获取一个,执行其工作,然后关闭连接,这实际上将其返回到它来自的池,准备提供另一个请求。
答案 1 :(得分:0)
问题1:
如果不需要servlet,为什么要使用它?只需在普通的Java类中进行繁琐的工作即可。通过这种方式,您在工作流程中的依赖性会降低。
问题2:
现在大多数应用服务器都支持池化连接。强烈建议您使用此功能。现在,有很多方法可以继续前进。最简单的IMO最好的方法是创建一个与数据库相关的Object,它将处理连接打开/关闭,执行更新/删除/选择功能,并在整个应用程序中使用它
答案 2 :(得分:0)