摘要:是的寫法新建項目,結(jié)構(gòu)如下文件打包啟動包放到目錄下,啟動訪問使用插件,構(gòu)建嵌入式容器文件中添加打包啟動訪問解壓包,找到可以得出的啟動類模擬,構(gòu)建嵌入式容器源碼訪
tomcat @WebServlet
@WebServlet 是servlet 3.0的寫法
新建maven項目,結(jié)構(gòu)如下
pom文件
4.0.0 com.adagio tomcat-demo 0.0.1-SNAPSHOT war UTF-8 Javax.servlet javax.servlet-api 3.1.0 provided org.apache.tomcat.maven tomcat7-maven-plugin 2.1 org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.8 org.apache.maven.plugins maven-war-plugin 3.2.0 false
Java Code
package com.adagio; import java.io.IOException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(urlPatterns = "/demo") public class DemoServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); String message = request.getParameter("message"); response.getWriter().print(message); response.getWriter().println("
"); } }
打包:mvn -Dmaven.test.skip -U clean package
啟動:war包放到tomcat/webapps目錄下,啟動tomcat
訪問:http://localhost:8080/tomcat-demo-0.0.1-SNAPSHOT/demo?message=hello
使用maven插件,構(gòu)建嵌入式容器POM文件中添加
org.apache.tomcat.maven tomcat7-maven-plugin 2.1 tomcat-run exec-war-only package /
打包:mvn -Dmaven.test.skip -U clean package
啟動:java -jar targettomcat-demo-0.0.1-SNAPSHOT-war-exec.jar
訪問:http://localhost:8080/demo?message=hello
解壓jar包,找到 META-INF/MANIFEST.MF
Manifest-Version: 1.0 Main-Class: org.apache.tomcat.maven.runner.Tomcat7RunnerCli
可以得出jar 的啟動類:org.apache.tomcat.maven.runner.Tomcat7RunnerCli
模擬server.xml,構(gòu)建嵌入式容器 源碼import java.io.File; import org.apache.catalina.Context; import org.apache.catalina.Host; import org.apache.catalina.Service; import org.apache.catalina.Wrapper; import org.apache.catalina.connector.Connector; import org.apache.catalina.core.StandardContext; import org.apache.catalina.startup.Tomcat; /** * 訪問 : http://localhost:9527/index.jsp * http://localhost:9527/demo?message=hello * */ public class EmbeddedTomcatServer { public static void main(String[] args) throws Exception { //確定classes 目錄絕對路徑 String calssesPath = System.getProperty("user.dir") + File.separator + "target" + File.separator + "classes"; System.out.println(calssesPath); //創(chuàng)建Tomcat實例 Tomcat tomcat = new Tomcat(); tomcat.setPort(9527); //設(shè)置Host Host host = tomcat.getHost(); host.setName("localhost"); host.setAppBase("webapps"); //設(shè)置 Context //server.xml -文件String webapp = System.getProperty("user.dir") + File.separator + "src" + File.separator + "main" + File.separator + "webapp"; String contextPath = "/"; //設(shè)置 webapp 絕對路徑到 Context,作為它的docBase Context context = tomcat.addWebapp(contextPath, webapp); if(context instanceof StandardContext) { StandardContext standardContext = new StandardContext(); // 設(shè)置默認的web.xml文件到Context standardContext.setDefaultContextXml(calssesPath + File.separator + "conf/web.xml"); //設(shè)置 Classpath 到Context // 添加DemoServlet到tomcat 容器 Wrapper wrapper = tomcat.addServlet(contextPath, "DemoServlet", new DemoServlet()); wrapper.addMapping("/demo"); } //http://localhost:9526/demo?message=%E5%B0%8F%E9%A9%AC //設(shè)置Service Service service = tomcat.getService(); Connector connector = new Connector(); //這里設(shè)置了一個port,等于兩個端口都可以使用,但是上面那個端口訪問中文亂碼 connector.setPort(9526); connector.setURIEncoding("UTF-8"); connector.setProtocol("HTTP/1.1"); service.addConnector(connector); //啟動 tomcat 服務(wù)器 tomcat.start(); // 強制 Tomcat Server 等待,避免main線程執(zhí)行結(jié)束關(guān)閉 tomcat.getServer().await(); } }
直接從tomcat/conf copy web.xml到項目中
在resources下建 conf目錄,把copy的web.xml放進去
在webapp下新建 index.jsp
具體如圖
... 未完
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76529.html
摘要:即直接啟動即自動打開的服務(wù)器,自動布署成功。進入,雙擊啟動服務(wù)器測試部署輸入訪問地址可成功看到訪問界面。至此的部署就結(jié)束了。 Tomcat服務(wù)器部署 tomcat服務(wù)器是免費的且性能相對穩(wěn)定的web應用服務(wù)器,在許多中小型企業(yè)中很受歡迎 FineBI支持的版本:tomcat6.0及以上版本 FineBI支持的JDK版本:jdk1.6及以上版本 1.1 獨立部署 獨立部署指的是在一個服務(wù)...
摘要:即直接啟動即自動打開的服務(wù)器,自動布署成功。進入,雙擊啟動服務(wù)器測試部署輸入訪問地址可成功看到訪問界面。至此的部署就結(jié)束了。 Tomcat服務(wù)器部署 tomcat服務(wù)器是免費的且性能相對穩(wěn)定的web應用服務(wù)器,在許多中小型企業(yè)中很受歡迎 FineBI支持的版本:tomcat6.0及以上版本 FineBI支持的JDK版本:jdk1.6及以上版本 1.1 獨立部署 獨立部署指的是在一個服務(wù)...
摘要:嵌入在一些項目中,單獨開啟一個,對于項目實施來說有時略顯繁瑣。待啟動后,選擇所在的進程。連接后選擇頁簽紅框的地方分別為已消費和已進入中的消息的條數(shù)。 ActiveMQ 嵌入Tomcat 在一些項目中,單獨開啟一個ActiveMQ,對于項目實施來說有時略顯繁瑣。所以我們將ActiveMQ內(nèi)嵌到Tomcat,Tomcat啟動同時就順帶啟動了ActiveMQ。由此我們需要掌握三個個重要的知識...
摘要:但考慮到實際的情形中,我們的服務(wù)器一般是另外部署好了的,有專門的維護方式。此時我們需要剝離掉應用內(nèi)置的服務(wù)器,進而將應用發(fā)布并部署到外置的容器之中,本文就實踐一下這個。 showImg(https://segmentfault.com/img/remote/1460000015173574); 0x01. 概述 SpringBoot平時我們用的爽歪歪,爽到它自己連Tomcat都自集成...
閱讀 2996·2023-04-26 00:23
閱讀 3407·2021-09-13 10:28
閱讀 2193·2021-08-31 14:18
閱讀 2895·2019-08-30 15:54
閱讀 1951·2019-08-30 15:43
閱讀 1286·2019-08-29 16:56
閱讀 2810·2019-08-29 14:16
閱讀 2063·2019-08-28 17:51