使用main方法启动tomcat简洁版

pring boot提供了一种快速使用spring的方式,其中一项就是使用main方法装配启动tomcat。他是如何做到的呢?

一. 首先是一个启动tomcat的简单例子:

0. 先导入tomcat的jar包(准备工作)。

  如果是maven项目:

    <properties>
        <tomcat.version>7.0.47</tomcat.version>
    </properties>

    <dependencies>

        <!--tomcat需要的jar包start-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-util</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-coyote</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-api</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jdbc</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-dbcp</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jsp-api</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jasper</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jasper-el</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-el-api</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-catalina</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-tribes</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-catalina-ha</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-annotations-api</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <!--tomcat需要的jar包end-->

</dependencies>

  如果只是普通的项目:那就直接把tomcat的lib目录下的所有jar包导入(虽然很多用不到,但是这样快呀),再导入bin目录下的一个名叫tomcat-juli.jar的包即可。

 

1. 先创建一个类,复制下面的main方法到自己的类中。

    public static void main(String[] args) {
        Tomcat tomcat = new Tomcat();
        // 设置主机名称
        tomcat.setHostname("localhost");
        tomcat.setPort(8080);
        tomcat.setBaseDir(System.getProperty("user.dir"));
        StandardContext context = new StandardContext();
        // 设置资源路径
        context.setDocBase((System.getProperty("user.dir")+"\\src\\main\\resources\\static").replace("\\","/"));
        // 设置应用路径
        context.setPath("");
        context.addLifecycleListener(new Tomcat.FixContextListener());
        // 将context加入tomcat
        tomcat.getHost().addChild(context);
        // 在context中创建表示servlet的Wrapper并返回
        Wrapper testServlet = context.createWrapper();
        testServlet.setName("test");
        testServlet.setServletClass("com.wenliang.servlet.TestServlet");
        testServlet.addInitParameter("fork", "false");
        context.addChild(testServlet);
        context.addServletMapping("/test", "test");

        try {
            // 启动tomcat
            tomcat.start();
        } catch (LifecycleException e) {
            e.printStackTrace();
        }
        // 等待请求
        tomcat.getServer().await();
    }

2. 在刚才的main方法中,加入了一个servlet,所以此时需要先创建此servlet。

public class TestServlet 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");
    }
}

3. 启动main方法,输入地址访问 http://localhost:8080/test

你将看到返回结果:helloworld

至此,一个简单的使用main方法启动tomcat的例子就完成了。

升级版

对此做了一些封装,代码提交到了githup下:

ssh地址:git@github.com:wenliangne/wl.git

https地址:https://github.com/wenliangne/wl.git

路径:wl/wl/quickstart

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值