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 }