当咱们开始接触到SpringBoot我的项目的时候,咱们特地诧异,为什么没有了tomcat服务器,web我的项目还能跑起来。为什么只用了一个main办法就能讲一个web我的项目跑起来。学习了这篇文章你就能明确了。

1.发现内置Tomcat

关上一个SpringBoot我的项目,咱们发现,有tomcat的依赖

接下来让咱们把tomcat的依赖找到

首先找到spring-boot-starter-web

点进去之后咱们看到他用的是2.1.0版本,咱们持续点击去

果然在外面找到tomcat的依赖,咱们持续点进去

这是咱们咱们就能看到tomcat的相干依赖了。

因而咱们是能够应用Java提供内置Tomcat容器框架,应用Java语言操作Tomcat容器。这样咱们也能创立一个maven我的项目,并且内置一个tomcat容器了。

2.创立一个maven我的项目

3.增加tomcat依赖

这里咱们应用8.5版本的tomcat

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

4.创立一个servlet:IndexServlet

public class IndexServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  resp.getWriter().print("IndexServletIndexServletIndexServletIndexServletIndexServletIndexServlet"); }}

咱们先看看传统的Servlet须要怎么配置,咱们须要在WEB-INF目录下的web.xml文件中,配置sevlet的映射

当咱们拜访这个servlet的时候,拜访地址应该是:ip:<端口>/<tomcat上下文>/index

然而,然而,然而tomcat和web.xml没了,怎么配置?简略,没有咱们就用main办法来创立一个tomcat。

5.创立一个tomcat

5.1.定义servlet配置参数

咱们先定义几个servlet的配置参数:servlet的名字,servlet的映射

5.2.内置Tomcat罕用API介绍

org.apache.catalina.startup.Tomcat

创立tomcat

Tomcat tomcatServer = new Tomcat();

设置tomcat端口

void setPort(int port);

设置上下文地址

void setPath(String path)

增加监听

void addLifecycleListener(LifecycleListener listener)

增加sevlet

Wrapper addServlet(String contextPath,String servletName,Servlet servlet)

增加sevlet映射

void addServletMappingDecoded(String pattern, String name)

启动tomcat

void start() throws LifecycleException

获取服务

Server getServer()

服务异步

tomcatServer.getServer().await()

将Web应用程序增加到Tomcat的webapps目录中,等效的默认web.xml将利用于该Web应用程序,并且与该应用程序打包的任何WEB-INF/web.xmlMETA-INF/context.xml都将被失常解决。

Context addWebapp(String contextPath, String docBase) throws ServletException

web利用资源增加到此Web应用程序

void addPreResources(WebResourceSet webResourceSet)

5.3.创立tomcat并且增加servlet

public class TestTomcat { private static int PORT = 8080; private static String CONTEX_PATH = "/demosevlet"; private static String SERVLET_NAME = "index"; private static String MAPPING = "index"; public static void main(String[] args) throws LifecycleException, InterruptedException {  System.out.println("开始启动tomcat");  Tomcat tomcatServer = new Tomcat();  //设置tomcat端口  tomcatServer.setPort(PORT);  //此tomcat端口是否主动部署  tomcatServer.getHost().setAutoDeploy(false);  //创立一个web应用程序  StandardContext standardContex = new StandardContext();  //设置web应用程序的上下文地址  standardContex.setPath(CONTEX_PATH);  //增加web应用程序的监听  standardContex.addLifecycleListener(new FixContextListener());  //将web应用程序增加到服务器中  tomcatServer.getHost().addChild(standardContex);  //配置servelt和映射  tomcatServer.addServlet(CONTEX_PATH, SERVLET_NAME, new IndexServlet());  standardContex.addServletMappingDecoded("/"+MAPPING, SERVLET_NAME);  //启动tomcat  tomcatServer.start();  System.out.println("启动tomcat结束");  //开启异步服务,接管申请  tomcatServer.getServer().await(); }}

5.4.启动main办法创立tomcat

启动后果如下,咱们看到tomcat以8080端口启动。

并且在此目录下生成了tomcat.8080文件夹

5.5.拜访IndexServlet

申请地址:ip:<端口>/<tomcat上下文>/index

申请地址:127.0.0.1:8080/demosevlet/index

原文链接:https://blog.csdn.net/m0_3789...

版权申明:本文为CSDN博主「歪桃」的原创文章,遵循CC 4.0 BY-SA版权协定,转载请附上原文出处链接及本申明。

近期热文举荐:

1.1,000+ 道 Java面试题及答案整顿(2021最新版)

2.别在再满屏的 if/ else 了,试试策略模式,真香!!

3.卧槽!Java 中的 xx ≠ null 是什么新语法?

4.Spring Boot 2.5 重磅公布,光明模式太炸了!

5.《Java开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞+转发哦!