美文网首页
用java的方式创建一个自己的tomcat(类似spring b

用java的方式创建一个自己的tomcat(类似spring b

作者: G__yuan | 来源:发表于2021-06-28 11:43 被阅读0次

注:本文参考原文地址为:https://mp.weixin.qq.com/s/QVvwv__bqXhd7wqOIlzkpQ
当我们刚开始玩spring boot的时候,会惊奇的发现没有tomcat服务器,web项目还能跑起来,为什么只用一个mian方法就能将一个web项目跑起来,接下来我们来分析分析。

1.发现内置Tomcat

当构建一个spring boot 项目时,你看依赖会发现有tomcat的依赖


image.png

2.构建一个基础的maven项目

3.pom中添加tomcat依赖

 <!--Java语言操作tomcat -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>8.5.16</version>
        </dependency>

4.创建一个servlet:IndexServlet

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 IndexServlet 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().print("indexservletindexservletindexservletindexservletindexservletindexservlet");
    }
}

接下来,我们再回想一下,传统的servlet是如何配置的,之前我们是需要在WEB-INF目录下找到web.xml,然后在该文件中配置servlet。


image.png

但是现在tomcat和web.xml没有了,该如何配置呢。这简单,我们用mian方法来创建一个tomcat。

5.创建一个tomcat

import org.apache.catalina.LifecycleException;
import org.apache.catalina.core.StandardContext;
import org.apache.catalina.startup.Tomcat;

public class TestTomcat {

    private static int PORT = 8080;

    private static String CONTEX_PATH = "/demoservlet";

    private static String SERVLET_NAME = "index";

    private static String MAPPING = "index";

    public static void main(String[] args) throws LifecycleException {
        System.out.println("启动tomcat");

        Tomcat tomcat = new Tomcat();

        //设置端口
        tomcat.setPort(PORT);

        //此tomcat端口是否自动部署
        tomcat.getHost().setAutoDeploy(false);

        //创建一个web应用
        StandardContext standardContext = new StandardContext();

        //设置web应用程序的上下文地址
        standardContext.setPath(CONTEX_PATH);
        //添加web应用程序的监听
        standardContext.addLifecycleListener(new Tomcat.FixContextListener());
        //将web应用程序添加到服务中
        tomcat.getHost().addChild(standardContext);
        //配置servlet和映射
        tomcat.addServlet(CONTEX_PATH, SERVLET_NAME, new IndexServlet());
        standardContext.addServletMappingDecoded("/"+MAPPING, SERVLET_NAME);
        //启动tomcat
        tomcat.start();
        System.out.println("启动tomcat完毕");
        //开启异步服务,接收请求
        tomcat.getServer().await();
    }
}

对上面几个常量参数和之前web.xml文件中的配置信息的一个对应说明


image.png

6.启动main方法然后打开浏览器访问

请求地址:ip:<端口>/<tomcat上下文>/index
测试请求地址:http://127.0.0.1:8080/demoservlet/index

image.png
并且在工程目录下生成了一个tomcat.8080的文件夹
image.png

相关文章

网友评论

      本文标题:用java的方式创建一个自己的tomcat(类似spring b

      本文链接:https://www.haomeiwen.com/subject/lqrqultx.html