Jsp 是还是不是?
我正在用JSP开发一个简单的web应用程序,它可以访问MySQL数据库。我正在使用Hibernate库连接和使用数据库。因此,我的问题是:我是否需要使用企业JavaBeans(EJB)来解决这个问题(考虑到它是一个网站,可能会被多个用户同时访问,并且所有用户都希望同时使用数据库)?Hibernate的ORM就足够了。我的理解是,EJB在多层应用程序中更为有用(在多层应用程序中,您与包含EJB的中间层进行前端对话,而中间层又与数据库进行对话),因此,为了更简单的目的,EJB的设计过于复杂(但EJB3并不像以前的版本那样令人讨厌,所以请对此持保留态度).EJB的主要优点是它允许以声明的方式划分事务。与反复编写相同的样板代码来启动事务、在事务结束时提交、在发生异常时回滚等不同,这是由EJB堆栈为您完成的。顺便说一句,Spring也提供了同样的可能性 但是,阅读您的问题和之前的评论,最重要的是正确地构建您的应用程序。不要在JSP中放入任何Java代码。只在JSP中使用JSPEL、JSTL和其他自定义标记,它们用于生成标记 业务逻辑应该放在Java类(EJB或非EJB)中,这些Java类应该从servlet调用,然后servlet将被分派到JSP以生成标记。有很多web框架可以帮助您正确地构建应用程序,还可以帮助您进行验证、i18n、模板等。看看Stripes、Spring MVC、Struts等。由于Java EE 6,您必须区分EJB和JPAJsp 是还是不是?,jsp,ejb,Jsp,Ejb,我正在用JSP开发一个简单的web应用程序,它可以访问MySQL数据库。我正在使用Hibernate库连接和使用数据库。因此,我的问题是:我是否需要使用企业JavaBeans(EJB)来解决这个问题(考虑到它是一个网站,可能会被多个用户同时访问,并且所有用户都希望同时使用数据库)?Hibernate的ORM就足够了。我的理解是,EJB在多层应用程序中更为有用(在多层应用程序中,您与包含EJB的中间层进行前端对话,而中间层又与数据库进行对话),因此,为了更简单的目的,EJB的设计过于复杂(但EJB
- 企业JavaBeans(javax.ejb)为分布式、容器管理的业务逻辑定义了一个标准。这包括异步消息传递(JMS)、声明性事务管理等“业务逻辑层”
- Java持久性API(javax.Persistence)定义了一个标准,用于访问/修改关系数据库管理系统中的持久性对象—持久性层
@Stateless
public class MyService {
@PersistenceContext
private EntityManager entityManager;
public Customer getCustomer(Integer customerId) {
return entityManager.find(Customer.class, customerId);
}
}
无需手动处理事务,也无需存储和保存实体管理器的代码
除此之外,EJB还自动实现线程安全,并且实例被池化。这意味着更好的性能和自动节流,防止系统过载
EJB中还有一些特性,但我个人发现,在大多数情况下,您最常用的就是上面提到的内容
EJB不需要任何配置就可以使用(请参阅),而且它们受到许多服务器(Resin、GlassFish、TomEE、JBoss AS)的支持。您还可以通过OpenEJB向尚未支持EJB的服务器添加EJB,但从已经支持EJB的服务器开始要容易得多。如果您的应用程序在Apache Tomcat下工作,您应该使用hibernate或纯JPA。 我认为对于简单的应用程序,您不需要JBoss,还是需要 如果您的应用程序在JBoss或Glassfish下运行,则无需远程调用即可自由使用EJB3。 如果后端和前端分开,则可以通过远程调用使用EJB3
通常,如果您可以使用EJB3/3.1/3.2,请使用它 因此,如果我理解正确,最好将EJB用于更复杂的应用程序,但就我而言,简单使用JSP和Hibernate就可以了。谢谢:)EJB非常简单,即使是最简单的应用程序也可以使用。在JSP中,我只是从Java类中创建对象,然后调用特定的方法从数据库中获取结果,然后显示结果,仅此而已。我将看看您提到的框架。谢谢:)