开发网站年度工作总结及明年工作计划,做电影下载网站成本,一起做网站欧洲站,企业生产erp软件公司前言Tomcat是一个非常流行的Web服务器#xff0c;用于部署和运行Java Web应用程序。一般情况下#xff0c;我们都是在单独的Tomcat实例上运行自己的Web应用#xff0c;其实与这种经典方案相比#xff0c;我们可以将服务器运行时直接集成到应用程序中#xff0c;从而更加的… 前言Tomcat是一个非常流行的Web服务器用于部署和运行Java Web应用程序。一般情况下我们都是在单独的Tomcat实例上运行自己的Web应用其实与这种经典方案相比我们可以将服务器运行时直接集成到应用程序中从而更加的灵活和方便。嵌入式Tomcat的Maven依赖要使用嵌入式Tomcat并将其运行时与Java Web应用程序打包请在Maven的pom.xml 文件中添加以下依赖项groupIdorg.apache.tomcat.embedgroupIdartifactIdtomcat-embed-coreartifactIdversion${tomcat.version}versiongroupIdorg.apache.tomcat.embedgroupIdartifactIdtomcat-embed-jasperartifactIdversion${tomcat.version}versiongroupIdorg.apache.tomcat.embedgroupIdartifactIdtomcat-embed-logging-juliartifactIdversion${tomcat.version}version其中 tomcat.version 是指向Tomcat实际版本的属性tomcat.version8.0.48tomcat.versionTomcat嵌入式实例核心类是org.apache.catalina.startup.Tomcat例如以下代码创建并启动在端口号8082上运行的嵌入式Tomcat实例package com.xiangxue.embedded;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.File;import java.io.IOException;import java.io.Writer;import org.apache.catalina.Context;import org.apache.catalina.LifecycleException;import org.apache.catalina.startup.Tomcat;public class EmbeddedTomcatEx {public static void main(String[] args) throws LifecycleException, InterruptedException, ServletException { Tomcat tomcat new Tomcat(); tomcat.setPort(8082); Context ctx tomcat.addContext(/, new File(.).getAbsolutePath()); Tomcat.addServlet(ctx, Embedded, new HttpServlet() {Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException { Writer w resp.getWriter(); w.write(Embedded Tomcat servlet.\n); w.flush(); w.close(); } }); ctx.addServletMapping(/*, Embedded); tomcat.start(); tomcat.getServer().await(); }}下面我们分段解释以上代码的作用Tomcat tomcat new Tomcat();tomcat.setPort(8082);Tomcat在端口8082上启动Context ctx tomcat.addContext(/, new File(.).getAbsolutePath());每个应用程序都映射到上下文。使用该addContext()方法我们创建了一个不是JSP文件且没有web.xml 文件的应用程序。我们使用根上下文路径和文档库的当前工作目录。Tomcat.addServlet(ctx, Embedded, new HttpServlet() {Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException { Writer w resp.getWriter(); w.write(Embedded Tomcat servlet.\n); w.flush(); w.close(); } });addServlet()方法添加了一个新的servlet 。servlet中使用流响应一些文本。 ctx.addServletMapping(/*, Embedded);servlet mappping控制如何访问名为Embedded的servlet。对于我们的示例任何URL最终都会调用我们的servlet。tomcat.start();tomcat.getServer().await();最后Tomcat服务器启动。服务器正在侦听端口8082因此在Web浏览器中键入以下URLhttp://localhost:8082/你就可以看到对应的效果总结基本上我们用到嵌入式Tomcat主要有以下的目的1)对Java组件等Web组件进行快速单元测试可以使用嵌入式Tomcat自动进行单元测试而不是启动/停止Tomcat服务器并打开Web浏览器进行手动单元测试。2)将Java Web应用程序作为独立的Java应用程序提供最终用户现在可以运行JAR文件该文件启动托管Web应用程序的嵌入式服务器。无需下载和安装Tomcat并手动部署Web应用程序。3)对Tomcat更好的控制集成嵌入式服务器使您能够以更好地控制服务器从代码上控制服务器并自动执行自行预订的步骤。并且现在流行的SpringBoot架构中直接使用Main方法启动一个也是使用以上的方式实现只是在实现中用到了更多的嵌入式Tomcat的相关的配置和参数。我知道你在看哟