tomcat embed example

295 阅读1分钟

1. 引入jar包

    <dependency>
		<groupId>org.apache.tomcat.embed</groupId>
		<artifactId>tomcat-embed-core</artifactId>
		<version>9.0.36</version>
	</dependency>

2. 新增一个servlet


public class MyServlet extends HttpServlet {

    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        res.setCharacterEncoding("UTF-8");
        String aa = req.getParameter("aa");
        System.out.println(aa);

        PrintWriter out = res.getWriter();
        res.setContentType("text/html; charset=utf-8");
        out.write("访问成功");
        out.flush();
        out.close();
        System.out.println("访问成功!");
    }
}

3.tomcat 调用

    public void start(String hostname, Integer port)  throws Exception{
        Tomcat tomcat = new Tomcat();
        Server server = tomcat.getServer();

        Service service = server.findService("Tomcat");
        Connector connector = new Connector();
        connector.setPort(port);

        Engine engine = new StandardEngine();
        engine.setDefaultHost(hostname);

        Host host = new StandardHost();
        host.setName(hostname);

        String contextPath = "";
        Context context = new StandardContext();
        context.setPath(contextPath);
        context.addLifecycleListener(new Tomcat.FixContextListener());

        host.addChild(context);
        engine.addChild(host);
        service.setContainer(engine);
        service.addConnector(connector);

        tomcat.addServlet(contextPath, "dispatcher", new MyServlet());
        context.addServletMappingDecoded("/*", "dispatcher");

        tomcat.start();
        tomcat.getServer().await();
    }

4.调用 curl http://localhost:9999?aa=333444