package com.test; import org.apache.catalina.connector.Connector; import org.apache.catalina.startup.Tomcat; import org.junit.Test; public class TestTomcat {//Test.class //通过如下方法启动tomcat @Test public void testTomcat()throws Exception { //1.构建tomcat对象(遵循JAVAEE规范) Tomcat t=new Tomcat(); //2.构建Connector对象(连接器),负责协议配置,端口配置等 Connector conn=new Connector("HTTP/1.1"); conn.setPort(8080); t.getService().addConnector(conn); //3.启动tomcat t.start(); //4.阻塞当前线程 t.getServer().await(); } }
需要导入的jar包
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-core</artifactId> <version>9.0.12</version> </dependency> </dependencies>
2.注册servlet:
1 import org.apache.catalina.Context; 2 import org.apache.catalina.connector.Connector; 3 import org.apache.catalina.startup.Tomcat; 4 import org.junit.Test; 5 public class ServletTests { 6 //嵌入式tomcat测试 7 @Test 8 public void testServlet()throws Exception { 9 //构建tomcat对象,此对象为启动tomcat服务的入口对象 10 Tomcat t=new Tomcat(); 11 //构建Connector对象,此对象负责与客户端的连接. 12 Connector con=new Connector("HTTP/1.1"); 13 //设置服务端的监听端口 14 con.setPort(8080); 15 //将Connector注册到service中 16 t.getService().addConnector(con); 17 //注册servlet 18 Context ctx=t.addContext("/",null); 19 Tomcat.addServlet( 20 ctx, 21 "helloServlet", 22 "com.company.java.servlet.HelloServlet"); 23 //映射servlet 24 ctx.addServletMappingDecoded("/hello", "helloServlet"); 25 //启动tomcat 26 t.start(); 27 //阻塞当前线程 28 System.out.println(Thread.currentThread().getName()); 29 t.getServer().await(); 30 //while(true) {} 31 } 32 }