web开发内嵌tomcat的使用,告别复杂的配置

对于java web开发,最常使用的就是安装tomcat,然后在ide中配置一大堆,然后在进行调试。这种方式对很多新手来说很容易出错。现在说一下使用内嵌的tomcat进行开发。

在tomcat官网,我们可以下载对应的内嵌tomcat,在官网长这样。

tomcat下载

下载解压后将需要用到的jar拷到项目对应的库目录下,然后就可以像普通的java程序一样开发web应用了。下面是启动tomcat的代码。

import java.io.File;

import org.apache.catalina.WebResourceRoot;
import org.apache.catalina.core.StandardContext;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.webresources.DirResourceSet;
import org.apache.catalina.webresources.StandardRoot;

public class Main {

    public static void main(String[] args) throws Exception {

        String webappDirLocation = "src/main/webapp/";
        Tomcat tomcat = new Tomcat();

        //The port that we should run on can be set into an environment variable
        //Look for that variable and default to 8080 if it isn't there.
        String webPort = System.getenv("PORT");
        if(webPort == null || webPort.isEmpty()) {
            webPort = "8080";
        }

        tomcat.setPort(Integer.valueOf(webPort));

        StandardContext ctx = (StandardContext) tomcat.addWebapp("/", new File(webappDirLocation).getAbsolutePath());
        System.out.println("configuring app with basedir: " + new File("./" + webappDirLocation).getAbsolutePath());

        // Declare an alternative location for your "WEB-INF/classes" dir
        // Servlet 3.0 annotation will work
        File additionWebInfClasses = new File("target/classes");
        WebResourceRoot resources = new StandardRoot(ctx);
        resources.addPreResources(new DirResourceSet(resources, "/WEB-INF/classes",
                additionWebInfClasses.getAbsolutePath(), "/"));
        ctx.setResources(resources);

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

为了方便调试,可以引入logback,log4j等日志系统来输出调试信息。
当然,也可以使用maven,gradle来构建项目。最后输出的就是一个jar包,可以直接发布到服务器来运行。
如果想发布成*.war的格式,可以参考这篇文章

文章中是使用spring boot的转换方法,如果在其他的项目中就是在ide中将tomcat的依赖设置为provided,然后选择打包方式。或者使用gradle或者maven来构建程序的话,可以参考spring boot的那篇文章。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值