国庆假期,闲来无事,翻翻Tomcat 7的书籍,顺便总结一下
Tomcat 7 支持嵌入的Web容器,在本地测试环境或者本地应用场景下比较有用,类似于Jetty的功能,可能是Tomcat觉得自己这个方面有所缺失,在Tomcat 7当中就增加了该功能
下载好Tomcat 7 Embedded版本:
里面包含这几个Jar包:
tomcat-embed-core.jar Tomcat核心类包,包含Tomcat Server的主要实现
tomcat-dbcp.jar Apache DBCP,用来在Tomcat实例中集成JDBC
tomcat-embed-jasper.jar Tomcat的JSP引擎
ecj-4.2.2.jar 来自Eclipse的JSP编译器,用来给Jasper引擎提供编译JSP文件使用
tomcat-embed-logging-juli.jar 集成JULI日志
tomcat-embed-logging-log4j.jar 集成Log4j日志
以测试一个Servlet为例:
import static org.junit.Assert.assertEquals; import java.io.IOException; import javax.servlet.ServletException; import org.apache.catalina.Context; import org.apache.catalina.LifecycleException; import org.apache.catalina.startup.Tomcat; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.xml.sax.SAXException; public class TomcatServletTest { private Tomcat tomcat; @Before public void startTomcat() throws ServletException, LifecycleException { tomcat = new Tomcat(); tomcat.setPort(8080); String tmpDirPath = System.getProperty("java.io.tmpdir"); Context ctxt = this.tomcat.addContext("/sqrt", tmpDirPath); Tomcat.addServlet(ctxt, "servletTest", new ServletTest()); ctxt.addServletMapping("/", "servletTest"); this.tomcat.start(); } @Test public void testSuccess() throws IOException, SAXException { CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpget = new HttpGet("http://localhost:8080/sqrt/?number=49"); CloseableHttpResponse response = httpClient.execute(httpget); try { response = httpClient.execute(httpget); HttpEntity entity = response.getEntity(); System.out.println(EntityUtils.toString(entity)); assertEquals("The result is 7.0", EntityUtils.toString(entity)); } catch (IOException e) { e.printStackTrace(); } finally { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } } @After public void stopTomcat() throws LifecycleException { this.tomcat.stop(); } }
import java.io.IOException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletTest extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { Double input = Double.parseDouble(request.getParameter("number")); double result = Math.sqrt(input); String message = "The result is " + result; response.getOutputStream().write(message.getBytes()); } }
相关推荐
本文将详细解析“tomcat-embed5.5.28”这一版本,探讨其在提升项目效率方面的关键作用,并深入讲解如何利用嵌入式Tomcat来构建自定义的Web容器。 首先,嵌入式Tomcat的核心理念是将Tomcat服务器内置于应用程序中,...
在JavaEE开发中,使用内嵌的Tomcat服务器(通常称为embeded Tomcat)是一种常见的实践,它允许开发者在本地环境中快速、方便地测试和调试应用程序,而无需手动配置独立的服务器实例。本文将深入探讨如何使用embeded ...
【标题】"embed-tomcat-example.zip"是一个包含Java Web项目的压缩包,它演示了如何在应用程序内部使用内嵌的Tomcat服务器进行开发。这种方式使得开发者可以在不依赖外部服务器环境的情况下,快速部署和测试Java Web...
这使得开发、测试和部署流程更为简洁,特别是在微服务架构中,每个服务可以包含自己的小型Tomcat实例。 接下来,我们来看看如何使用这个压缩包中的内容: 1. **引入依赖**:在Java项目中,你需要将"tomcat-embed...
总的来说,内嵌式Tomcat结合Maven为我们提供了一种便捷的开发和测试环境,使得我们可以快速地启动和停止Web应用,而无需关心外部服务器的配置。这种模式特别适合于持续集成和持续交付流程,极大地提高了开发效率。...
1. **准备环境**:下载并解压Tomcat的嵌入版本,将其重命名为`tomcat-embed`并放置在易于访问的位置。将`tomcat-embed/lib`目录下的所有JAR文件添加到项目的类路径中。 2. **构建嵌入式Tomcat实例**:创建`Embedded...
在使用嵌入式Tomcat时,需要注意的是,嵌入式Tomcat并不适用于生产环境,其设计更多是面向开发和测试阶段。在高并发或需要高可用性的生产环境中,还是需要部署到独立的Tomcat服务器或使用Web服务器集群。 #### 与...
【标题】"Tomcat-Embed-Test"是一个与Java相关的项目,主要关注的是如何在Java应用程序中嵌入式地使用Apache Tomcat服务器进行测试。Apache Tomcat是Java Servlet和JavaServer Pages(JSP)的标准实现,它是一个开源...
#### 三、构建嵌入式Tomcat环境 为了实现嵌入式Tomcat的应用开发,我们需要按照以下步骤来进行设置: 1. **创建嵌入式Tomcat Server实例**: - 使用`org.apache.catalina.startup.Embedded`类来创建一个嵌入式...
IntelliJ IDEA是一款广受欢迎的Java开发集成环境,它提供了丰富的功能来支持各种项目构建工具,其中就包括Gradle。Gradle是一种强大的构建自动化工具,它允许开发者灵活地定义项目结构和构建过程,同时支持多语言...
4. **插件(Plugins)**:提供了执行构建任务的能力,例如编译源代码、打包项目、运行单元测试等。 5. **仓库(Repositories)**:用于存储项目依赖的仓库系统,分为本地仓库和远程仓库。 #### Eclipse 配置 ...
4. **便于自动化**:在持续集成环境中,嵌入式服务器可以轻松地与构建工具(如Maven或Gradle)集成,实现自动部署和测试。 Tomcat 5.5.20是该版本的一个具体发行版,可能包含以下关键特性: - **Servlet 2.4支持**...
"prueba-tomcat-embed-master"这个文件夹很可能是项目源码的主目录,里面包含了项目的配置、源代码、测试用例等资源。通常,你可能会在这个项目中找到以下组件: 1. **pom.xml**:Maven的项目对象模型(Project ...
这个文件名表明它是JFinal演示项目,使用了Tomcat内嵌版(`embed`表示内嵌)。这个压缩包可能包含以下内容: 1. **源代码**:展示了如何在JFinal项目中配置和使用Tomcat内嵌版。 2. **配置文件**:可能包含`web.xml...
这种方式称为“嵌入式Tomcat”,它允许开发者将Tomcat的功能直接嵌入到应用中,简化了部署流程,特别适用于微服务和测试环境。 首先,理解"WAR"格式是关键。WAR(Web Application Archive)是一种标准的Java Web...
【标题】"servlet_tomcat:Maven,Tomcat,Servlet,Freemarker" 提供了关于构建Java Web应用程序的关键技术,主要包括四个核心组件:Maven、Tomcat、Servlet和Freemarker。这些组件在Java Web开发中扮演着至关重要...
Apache Tomcat 7.0.61是广泛使用的开源Servlet容器,它实现了Servlet 3.0规范,提供了稳定、高性能的运行环境。 一、Servlet 3.0新特性 1. 注解支持:Servlet 3.0引入了注解(Annotation)来声明Servlet、Filter和...
在Java开发中,Maven是一个强大的项目管理和依赖管理工具,它极大地简化了构建、测试和部署过程。Maven的核心理念是“约定优于配置”,通过一套标准化的目录结构和配置文件,使得项目构建变得简单且可预测。Maven的...
2. **配置环境变量**: 安装完成后,需要在系统的环境变量中设置`Maven_HOME`,并将`bin`目录添加到`PATH`中,以便在命令行中可以直接运行`mvn`命令。 3. **配置settings.xml**: Maven的配置文件`settings.xml`位于`...
<groupId>org.apache.tomcat.embed <artifactId>tomcat-embed-core <version>9.0.53 ``` 在实际开发中,可能会遇到依赖地狱问题,即多个库之间存在相互冲突的依赖版本。这时,Maven的依赖管理策略(比如...