参考实例代码:
1 package com.scdsun.learntomcat; 2 3 import java.io.File; 4 import java.io.IOException; 5 6 import javax.servlet.ServletException; 7 8 import org.apache.catalina.LifecycleException; 9 import org.apache.catalina.core.AprLifecycleListener; 10 import org.apache.catalina.core.StandardServer; 11 import org.apache.catalina.startup.Tomcat; 12 13 public class MyServer { 14 private static String PROJECT_PATH = System.getProperty("user.dir"); 15 private static String WEB_APP_PATH = PROJECT_PATH + File.separator 16 + "webapps"; 17 private static String CATALINA_HOME = PROJECT_PATH; 18 19 public static void main(String[] args) throws LifecycleException, 20 IOException, ServletException { 21 Tomcat tomcat = new Tomcat(); 22 tomcat.setPort(8080); 23 // 将会在相应目录下生产jsp原文件及对应的class 24 // 如这里使用应用程序的根目录:D:Workspace_EclipseLearnTomcatworkTomcatlocalhostHelloorgapachejsp 25 // 其中D:Workspace_EclipseLearnTomcat为CATALINA_HOME 26 // 后续的workTomcatlocalhostHelloorgapachejsp为tomcat生成的文件 27 tomcat.setBaseDir(CATALINA_HOME); 28 // Web应用所存放的目录,如:D:Workspace_EclipseLearnTomcatwebapps 29 // 在这个目录下存放需要发布的Web应用 30 tomcat.getHost().setAppBase(WEB_APP_PATH); 31 32 try { 33 StandardServer server = (StandardServer) tomcat.getServer(); 34 AprLifecycleListener listener = new AprLifecycleListener(); 35 server.addLifecycleListener(listener); 36 37 // 添加一个根路径应用,如http://localhost:8080/ 38 tomcat.addWebapp("/", WEB_APP_PATH + File.separator + "ROOT"); 39 // 添加一个/Hello应用,如: http://localhost:8080/Hello/ 40 tomcat.addWebapp("/Hello", WEB_APP_PATH + File.separator + "Hello"); 41 } catch (ServletException e) { 42 e.printStackTrace(); 43 throw e; 44 } 45 try { 46 tomcat.start(); 47 tomcat.getServer().await(); 48 } catch (LifecycleException e) { 49 e.printStackTrace(); 50 throw e; 51 } 52 53 } 54 }
服务启动后:
1、由于添加了ROOT应用(tomcat.addWebapp("/", WEB_APP_PATH + File.separator + "ROOT")),可以在本地文件夹D:Workspace_EclipseLearnTomcatwebappsROOT中放置index.htm文件,直接访问地址http://localhost:8080/
2、由于添加了Hello/应用(tomcat.addWebapp("/Hello", WEB_APP_PATH + File.separator + "Hello")),可以在本地文件夹D:Workspace_EclipseLearnTomcatwebappsHello中保存hello.jsp文件,访问http://localhost:8080/Hello/hello.jsp进行测试;Tomcat为hello.jsp自动生成的java和class文件,位于本地D:Workspace_EclipseLearnTomcatworkTomcatlocalhostHelloorgapachejsp目录中