日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
教你用Java的方式創(chuàng)建一個(gè)自己的Tomcat容器

 當(dāng)我們開始接觸到SpringBoot項(xiàng)目的時(shí)候,我們特別驚訝,為什么沒有了tomcat服務(wù)器,web項(xiàng)目還能跑起來。為什么只用了一個(gè)main方法就能講一個(gè)web項(xiàng)目跑起來。學(xué)習(xí)了這篇文章你就能明白了。

創(chuàng)新互聯(lián)專注于古塔企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城開發(fā)。古塔網(wǎng)站建設(shè)公司,為古塔等地區(qū)提供建站服務(wù)。全流程按需開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

1.發(fā)現(xiàn)內(nèi)置Tomcat

打開一個(gè)SpringBoot項(xiàng)目,我們發(fā)現(xiàn),有tomcat的依賴

接下來讓我們把tomcat的依賴找到

首先找到spring-boot-starter-web

點(diǎn)進(jìn)去之后我們看到他用的是2.1.0版本,我們繼續(xù)點(diǎn)擊去

果然在里面找到tomcat的依賴,我們繼續(xù)點(diǎn)進(jìn)去

這是我們我們就能看到tomcat的相關(guān)依賴了。

因此我們是可以使用Java提供內(nèi)置Tomcat容器框架,使用Java語言操作Tomcat容器。這樣我們也能創(chuàng)建一個(gè)maven項(xiàng)目,并且內(nèi)置一個(gè)tomcat容器了。

2.創(chuàng)建一個(gè)maven項(xiàng)目

3.添加tomcat依賴

這里我們使用8.5版本的tomcat

 
 
 
 
  1.  
  2.  
  3.  org.apache.tomcat.embed 
  4.  tomcat-embed-core 
  5.  8.5.16 

4.創(chuàng)建一個(gè)servlet:IndexServlet 

 
 
 
 
  1. public class IndexServlet extends HttpServlet { 
  2.  private static final long serialVersionUID = 1L; 
  3.  @Override 
  4.  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
  5.   doPost(req, resp); 
  6.  } 
  7.  @Override 
  8.  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
  9.   resp.getWriter().print("IndexServletIndexServletIndexServletIndexServletIndexServletIndexServlet"); 
  10.  } 
  11. }

我們先看看傳統(tǒng)的Servlet需要怎么配置,我們需要在WEB-INF目錄下的web.xml文件中,配置sevlet的映射

當(dāng)我們?cè)L問這個(gè)servlet的時(shí)候,訪問地址應(yīng)該是:ip:<端口>//index

但是,但是,但是tomcat和web.xml沒了,怎么配置?簡(jiǎn)單,沒有我們就用main方法來創(chuàng)建一個(gè)tomcat。

5.創(chuàng)建一個(gè)tomcat

5.1.定義servlet配置參數(shù)

我們先定義幾個(gè)servlet的配置參數(shù):servlet的名字,servlet的映射

5.2.內(nèi)置Tomcat常用API介紹

org.apache.catalina.startup.Tomcat

創(chuàng)建tomcat

 
 
 
 
  1. Tomcat tomcatServer = new Tomcat();

設(shè)置tomcat端口

 
 
 
 
  1. void setPort(int port);

設(shè)置上下文地址

 
 
 
 
  1. void setPath(String path)

添加監(jiān)聽

 
 
 
 
  1. void addLifecycleListener(LifecycleListener listener)

添加sevlet

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

添加sevlet映射

 
 
 
 
  1. void addServletMappingDecoded(String pattern, String name)

啟動(dòng)tomcat

 
 
 
 
  1. void start() throws LifecycleException

獲取服務(wù)

 
 
 
 
  1. Server getServer()

服務(wù)異步

 
 
 
 
  1. tomcatServer.getServer().await()

將Web應(yīng)用程序添加到Tomcat的webapps目錄中,等效的默認(rèn)web.xml將應(yīng)用于該Web應(yīng)用程序,并且與該應(yīng)用程序打包的任何WEB-INF/web.xml和META-INF/context.xml都將被正常處理。

 
 
 
 
  1. Context addWebapp(String contextPath, String docBase) throws ServletException

web應(yīng)用資源添加到此Web應(yīng)用程序

 
 
 
 
  1. void addPreResources(WebResourceSet webResourceSet)

5.3.創(chuàng)建tomcat并且添加servlet 

 
 
 
 
  1. public class TestTomcat { 
  2.  private static int PORT = 8080; 
  3.  private static String CONTEX_PATH = "/demosevlet"; 
  4.  private static String SERVLET_NAME = "index"; 
  5.  private static String MAPPING = "index"; 
  6.  public static void main(String[] args) throws LifecycleException, InterruptedException { 
  7.   System.out.println("開始啟動(dòng)tomcat"); 
  8.   Tomcat tomcatServer = new Tomcat(); 
  9.   //設(shè)置tomcat端口 
  10.   tomcatServer.setPort(PORT); 
  11.   //此tomcat端口是否自動(dòng)部署 
  12.   tomcatServer.getHost().setAutoDeploy(false); 
  13.   //創(chuàng)建一個(gè)web應(yīng)用程序 
  14.   StandardContext standardContex = new StandardContext(); 
  15.   //設(shè)置web應(yīng)用程序的上下文地址 
  16.   standardContex.setPath(CONTEX_PATH); 
  17.   //添加web應(yīng)用程序的監(jiān)聽 
  18.   standardContex.addLifecycleListener(new FixContextListener()); 
  19.   //將web應(yīng)用程序添加到服務(wù)器中 
  20.   tomcatServer.getHost().addChild(standardContex); 
  21.   //配置servelt和映射
  22.   tomcatServer.addServlet(CONTEX_PATH, SERVLET_NAME, new IndexServlet()); 
  23.   standardContex.addServletMappingDecoded("/"+MAPPING, SERVLET_NAME);
  24.    //啟動(dòng)tomcat 
  25.   tomcatServer.start(); 
  26.   System.out.println("啟動(dòng)tomcat完畢"); 
  27.   //開啟異步服務(wù),接收請(qǐng)求 
  28.   tomcatServer.getServer().await(); 
  29.  } 
  30. }

5.4.啟動(dòng)main方法創(chuàng)建tomcat

啟動(dòng)結(jié)果如下,我們看到tomcat以8080端口啟動(dòng)。另外,關(guān)注Java知音公眾號(hào),回復(fù)“后端面試”,送你一份面試題寶典!

并且在此目錄下生成了tomcat.8080文件夾

5.5.訪問IndexServlet

請(qǐng)求地址:ip:<端口>//index

請(qǐng)求地址:127.0.0.1:8080/demosevlet/index


網(wǎng)站欄目:教你用Java的方式創(chuàng)建一個(gè)自己的Tomcat容器
文章出自:http://www.dlmjj.cn/article/dhdgdec.html