有人可以总结一下我的方法,对于我在Tomcat下运行的JAVA servlet吗?这个特定的Servlet没有框架,但是使用服务器/客户端服务,我已经为客户端用户请求编写了支持后端类和方法。在那些后端自定义类中,我使用Hibernate(希望使用c3p0连接池管理),并且Hibernate连接到常驻MySql服务器。
现在,似乎我已经通过在Servlet的lib目录下推送Hibernate JAR和C3P0 JAR以及JDBC JAR来强制一切工作,但我想知道我是否真的做了正确的事情?我在Tomcat日志中看到它看到Hibernate允许C3P0产生一个线程(这就是它的作用),它警告我,如果它需要它可能不会杀死它并且它可能是内存泄漏。所以,虽然我认为C3P0肯定在运行,因为我已经配置了Hibernate,并且它已经找到了对C3P0类的引用,我可以做一些不那么优化的东西吗?
我的Tomcat实例仅用于我提到的servlet,我应该在Tomcat库级别安装Hibernate,C3P0和Mysql JDBC资源吗?如果是这样,我需要做什么才能使用新设置?在Tomcat中配置文件? Servlet的后端用户定义的JAVA类需要做什么才能在servlet的父级(Tomcat)上使用这些资源?
每个工具都有自己的文档,我已经找到了如何为每个工具设置的简单例子,但没有告诉我这个场景的最佳选择。
非常感谢您的倾听/阅读,并希望能帮助我完成这项工作。
这个论坛非常棒,我依靠参与者的知识使自己每天都有用。
卡尔
答案 0 :(得分:0)
首先,有很多关于这些问题的博客文章。据我所知,我试着总结一下。其中一些可能是也可能不是最佳实践。
Servlet是java web开发的基础技术。如果您没有开发框架,我不建议使用它。是的,它是出于这个目的,但在开发servlet时很难将业务逻辑和您的视图分开。当事情变得复杂时,servlet变得更难维护。您应该尝试在servlet体系结构之上开发的其他框架。如果您指定开发servlet应用程序的初始目的,我可以提供帮助。
Tomcat作为servlet容器,处理所有连接并将请求传递给相应的servlet。您的应用程序(.WAR文件)将在servlet容器之上运行。此外,servlet容器必须遵循一些规则和规范。因此,如果使用servlet开发应用程序,则可以运行它所需的servlet容器。 Tomcat还可以管理您的资源,例如JDBC连接。您可以使用JNDI访问这些资源。
但是如果您想自己管理资源,则无需将依赖项添加到tomcat / lib文件夹。您可以将依赖项保存在WEB-INF / lib文件夹下。
有关于开发Web应用程序的模式。你必须检查什么是MVC。将应用程序分成不同的层是一种很好的做法。每一层都必须负责单件事。这是一个例子,假设您想要开发一个从hibernate读取数据的Web应用程序。您的第一层必须负责从数据库中获取数据。该层通常称为DAO层。在该层之上,您可以放置有时称为服务层的业务逻辑。最后你的观点,在这种情况下你的servlet。您可以找到an example DAO layer here。
起初,将所有框架粘合起来似乎有点困难,但相信我并不是那么难。而且你总是可以用Spring来粘合它们。
关于线程,没有源代码,很难识别问题。