- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人可以为我总结一下我正在使用的在 Tomcat 下运行的 JAVA servlet 的方法吗?这个特定的 Servlet 没有框架,但使用了一个服务器/客户端服务,我在其中编写了支持客户端用户请求的后端类和方法。在那些后端自定义类中,我正在使用 Hibernate(希望使用 c3p0 连接池管理),并且 Hibernate 连接到驻留的 MySql 服务器。
现在,似乎我已经通过将 Hibernate JAR、C3P0 JAR 和 JDBC JAR 推送到 Servlet 的 lib 目录下来强制一切正常工作,但我想知道我是否真的做了正确的事情?我在 Tomcat 日志中看到它看到 Hibernate 允许 C3P0 生成线程的位置(这就是它所做的),并且它警告我如果需要它不能杀死它并且它可能是内存泄漏.因此,虽然我相信 C3P0 肯定在运行,因为我将 Hibernate 配置为这样做,并且它已经找到了对 C3P0 类的引用,但我是否可以做一些不太理想的事情?
我的 Tomcat 实例仅用于我提到的 servlet,我是否应该在 Tomcat 库级别安装 Hibernate、C3P0 和 Mysql JDBC 资源?如果是这样,我需要什么才能让自己使用新设置? Tomcat 中的配置文件? Servlet 的后端用户定义 JAVA 类需要做什么才能在 servlet 的父级别 (Tomcat) 使用这些资源?
每个工具都有自己的文档,我找到了简单的示例来说明如何为每个工具进行设置,但没有告诉我什么最适合这种情况。
非常感谢您的收听/阅读,希望能帮助我度过难关。
这个论坛很棒,我依靠参与者的知识让自己每天都有用。
卡尔
最佳答案
首先,关于这些问题的博文有很多。我尽量总结一下我所知道的。其中一些可能是也可能不是最佳实践。
Servlet 是 java web 开发的基础技术。如果你不是在开发一个框架,我不会建议你使用它。是的,这是为了这个目的,但是在开发 servlet 时很难将业务逻辑和您的 View 分开。当事情变得复杂时,servlet 变得更难维护。您应该尝试在 servlet 架构之上开发的其他框架。如果您指定开发 servlet 应用程序的最初目的,我可能会提供帮助。
Tomcat 作为一个servlet 容器,处理所有的连接并将请求传递给相应的servlet。您的应用程序(一个 .WAR 文件)将在 servlet 容器之上运行。此外,servlet 容器必须遵循一些规则和规范。因此,如果您使用 servlet 开发应用程序,则可以在您想要的 servlet 容器中运行它。 Tomcat 还可以管理您的资源,例如 JDBC 连接。您可以使用 JNDI 访问这些资源。
但是如果你想自己管理资源,就不需要在tomcat/lib文件夹下添加你的依赖了。您可以将依赖项保存在 WEB-INF/lib 文件夹下。
有一些关于开发网络应用程序的模式。您必须检查什么是 MVC。将您的应用程序分成不同的层是一个很好的做法。每一层都必须负责一件事情。这是一个示例,假设您要开发一个将从 hibernate 中读取数据的 Web 应用程序。您的第一层必须负责从您的数据库中获取数据。这一层通常称为DAO层。在该层之上,您可以放置业务逻辑,有时称为服务层。最后是您的观点,在本例中是您的 servlet。你可以找到an example DAO layer here .
起初,粘合所有框架似乎有点困难,但相信我,这并不难。而且您始终可以使用 Spring 将它们粘合在一起。
关于线程,没有源代码很难确定问题。
关于mysql - 使用 hibernate 和 c3p0 以及 mysql 在 Tomcat 7.x 下运行的 Java Servlet 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31166681/
关于strcat函数。 while (*p) p++; 和 while (*++p) ; 两者都有效,但是 while (*p++) ; 不起作用。我认为 first 和 th
" in HTML?(HTML中的““是什么
?)
下面例子中的第一行代码是什么。我看到一个YouTuber在写下面的代码,它显示了一个设计在csswar Challenges中。我也尝试了一下,它很管用。但我以前从未在任何HTML教程上看到过它,我在
vs.
是不间断空格,表示没有换行的空白处。 如果我用 我在两个段落之间有一个空格(更大的间隔)。如果我使用 我在两个段落之间只有一个新行(没有中断)。为什么? 最佳答案 在 HTML 中
这个问题已经有答案了: Why are these constructs using pre and post-increment undefined behavior? (14 个回答) 已关闭 9
我对编程还很陌生,只是想知道为什么这段代码: for ( ; *p; ++p) *p = tolower(*p); 当 p 指向一个字符串时,可以降低 c 中字符串的大小写吗? 最佳答案 一般来说,这
代码 int n = 25; int *p = &n; printf("%x\n %d\n %x\n", p, p[0], p[1]); 返回: \ 当然我永远不会这样做,但在 K&R 中声明
所以,我想创建一个简单的程序,返回有关连续素数的计算结果。首先,我创建一个包含所有这些素数的列表,然后尝试计算结果,但这给了我一个超出范围的索引。有人可以帮助我吗?我的程序: primes = []
这个问题在这里已经有了答案: With arrays, why is it the case that a[5] == 5[a]? (20 个答案) 关闭 9 年前。 我想知道 C/C++ 中以下四
我仍在努力理解 *p、&p 和 p 之间的区别。根据我的理解,* 可以被认为是“指向的值”,而 & 可以被认为是“地址”。换句话说,* 保存值,而 & 保存地址。如果这是真的,那么 *p 和 p 之间
你是吗? [xxxrecipientFirstNamexxx]
和你是吗? {recipientFirstName}
需要更换 你是吗? [xxxrecipientFirstNamexxx] 和 你是吗? {recipientFirstName} 。我尝试使用边界匹配器。但结果并不符合预期。我尝试使用下面的代码 "A
我想按 IsTop 属性升序排序对象,然后按 JobId 属性降序排序: query = query.OrderBy(p => p.IsTop).ThenOrderByDescending(p =
在我尝试使用 Apache POI 进行转换的 Excel 文件中,我有一个单元格的数值为 -3.97819466831428,自定义格式为“0.0 p.p.;(0.0 p.p.)”。因此,在 Exc
我想创建一个扩展方法,允许我调用 ToSerializableDictionary(p => p.ID)而不是 .ToDictionary(p => p.ID)在以下 LINQ 上下文中。虽然我不确定
在下面的 HTML 代码上运行此 jQuery 代码会返回不同的结果,我认为它们应该返回相同的值。 jQuery 代码: var counter = 0; $("p").each(function()
在下面的代码片段中,符号 *p 等同于 p[0],*(p + 1) 等同于p[1],依此类推。 int* p = new int[3] { 1, 2, 3}; cout << *p << ' ' <<
这个问题在这里已经有了答案: What will happen when I call a member function on a NULL object pointer? [duplicate]
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Undefined Behavior and Sequence Points 按照标准中的定义,E1 +=
" in HTML?(在HTML中“
以下示例中的第一行代码是什么。我看到一个youtube用户写下面的代码,它显示在cssbattle挑战的设计。我也试过,它的作品。但我从来没有见过它在任何HTML教程之前,我在谷歌上搜索它,但它只显示
每当我收到来自 MS outlook 的电子邮件时,我都会收到此标记 & nbsp ; (没有空格)哪个显示为?在 <>. 当我将其更改为 ISO-8859-1 时,浏览器页面字符集编码为 UTF-8
p1
TESTp2
代码: from bs4 import BeautifulSoup soup = BeautifulSoup('p1TESTp2') print soup.div() 结果: [p1, p2] 为什么
我是一名优秀的程序员,十分优秀!