package org.huluo.embedTomcat;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.core.StandardContext;
import org.apache.catalina.startup.Tomcat;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws LifecycleException, IOException {
Tomcat tomcat = new Tomcat();
tomcat.setHostname("localhost");
tomcat.setPort(80);
tomcat.setBaseDir("E:/embedTomcat");
String contextPath = "";
StandardContext context = new StandardContext();
context.setPath(contextPath);
context.addLifecycleListener(new Tomcat.FixContextListener());
tomcat.getHost().addChild(context);
tomcat.addServlet(contextPath, "hello", new EmbedTomcatServlet());
context.addServletMappingDecoded("/hello", "hello");
tomcat.start();
tomcat.getServer().await();
}
}
这样可以以main方法的形式启动一个嵌入式 tomcat
但是,我们还没有servlet呢:
在写一个servlet,该servlet仅仅在页面上打印一行helloworld
package org.huluo.embedTomcat;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class EmbedTomcatServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("helloworld");
}
}
还要加入嵌入式Tomcat的依赖包哦
compile(group: 'org.apache.tomcat.embed',name: 'tomcat-embed-core',version: '8.5.14')