参考实例代码:java
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_Eclipse\LearnTomcat\work\Tomcat\localhost\Hello\org\apache\jsp 25 // 其中D:\Workspace_Eclipse\LearnTomcat\为CATALINA_HOME 26 // 后续的work\Tomcat\localhost\Hello\org\apache\jsp为tomcat生成的文件 27 tomcat.setBaseDir(CATALINA_HOME); 28 // Web应用所存放的目录,如:D:\Workspace_Eclipse\LearnTomcat\webapps 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 }
服务启动后:web
一、因为添加了ROOT应用(tomcat.addWebapp("/", WEB_APP_PATH + File.separator + "ROOT")),能够在本地文件夹D:\Workspace_Eclipse\LearnTomcat\webapps\ROOT中放置index.htm文件,直接访问地址http://localhost:8080/apache
二、因为添加了Hello/应用(tomcat.addWebapp("/Hello", WEB_APP_PATH + File.separator + "Hello")),能够在本地文件夹D:\Workspace_Eclipse\LearnTomcat\webapps\Hello\中保存hello.jsp文件,访问http://localhost:8080/Hello/hello.jsp进行测试;Tomcat为hello.jsp自动生成的java和class文件,位于本地D:\Workspace_Eclipse\LearnTomcat\work\Tomcat\localhost\Hello\org\apache\jsp目录中tomcat