摘要:是的寫法新建項目,結構如下文件打包啟動包放到目錄下,啟動訪問使用插件,構建嵌入式容器文件中添加打包啟動訪問解壓包,找到可以得出的啟動類模擬,構建嵌入式容器源碼訪
tomcat @WebServlet
@WebServlet 是servlet 3.0的寫法
新建maven項目,結構如下
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插件,構建嵌入式容器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,構建嵌入式容器 源碼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); //創建Tomcat實例 Tomcat tomcat = new Tomcat(); tomcat.setPort(9527); //設置Host Host host = tomcat.getHost(); host.setName("localhost"); host.setAppBase("webapps"); //設置 Context //server.xml -文件String webapp = System.getProperty("user.dir") + File.separator + "src" + File.separator + "main" + File.separator + "webapp"; String contextPath = "/"; //設置 webapp 絕對路徑到 Context,作為它的docBase Context context = tomcat.addWebapp(contextPath, webapp); if(context instanceof StandardContext) { StandardContext standardContext = new StandardContext(); // 設置默認的web.xml文件到Context standardContext.setDefaultContextXml(calssesPath + File.separator + "conf/web.xml"); //設置 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 //設置Service Service service = tomcat.getService(); Connector connector = new Connector(); //這里設置了一個port,等于兩個端口都可以使用,但是上面那個端口訪問中文亂碼 connector.setPort(9526); connector.setURIEncoding("UTF-8"); connector.setProtocol("HTTP/1.1"); service.addConnector(connector); //啟動 tomcat 服務器 tomcat.start(); // 強制 Tomcat Server 等待,避免main線程執行結束關閉 tomcat.getServer().await(); } }
直接從tomcat/conf copy web.xml到項目中
在resources下建 conf目錄,把copy的web.xml放進去
在webapp下新建 index.jsp
具體如圖
... 未完
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76529.html
摘要:即直接啟動即自動打開的服務器,自動布署成功。進入,雙擊啟動服務器測試部署輸入訪問地址可成功看到訪問界面。至此的部署就結束了。 Tomcat服務器部署 tomcat服務器是免費的且性能相對穩定的web應用服務器,在許多中小型企業中很受歡迎 FineBI支持的版本:tomcat6.0及以上版本 FineBI支持的JDK版本:jdk1.6及以上版本 1.1 獨立部署 獨立部署指的是在一個服務...
摘要:即直接啟動即自動打開的服務器,自動布署成功。進入,雙擊啟動服務器測試部署輸入訪問地址可成功看到訪問界面。至此的部署就結束了。 Tomcat服務器部署 tomcat服務器是免費的且性能相對穩定的web應用服務器,在許多中小型企業中很受歡迎 FineBI支持的版本:tomcat6.0及以上版本 FineBI支持的JDK版本:jdk1.6及以上版本 1.1 獨立部署 獨立部署指的是在一個服務...
摘要:嵌入在一些項目中,單獨開啟一個,對于項目實施來說有時略顯繁瑣。待啟動后,選擇所在的進程。連接后選擇頁簽紅框的地方分別為已消費和已進入中的消息的條數。 ActiveMQ 嵌入Tomcat 在一些項目中,單獨開啟一個ActiveMQ,對于項目實施來說有時略顯繁瑣。所以我們將ActiveMQ內嵌到Tomcat,Tomcat啟動同時就順帶啟動了ActiveMQ。由此我們需要掌握三個個重要的知識...
摘要:但考慮到實際的情形中,我們的服務器一般是另外部署好了的,有專門的維護方式。此時我們需要剝離掉應用內置的服務器,進而將應用發布并部署到外置的容器之中,本文就實踐一下這個。 showImg(https://segmentfault.com/img/remote/1460000015173574); 0x01. 概述 SpringBoot平時我們用的爽歪歪,爽到它自己連Tomcat都自集成...
閱讀 2990·2023-04-26 00:23
閱讀 3403·2021-09-13 10:28
閱讀 2181·2021-08-31 14:18
閱讀 2887·2019-08-30 15:54
閱讀 1943·2019-08-30 15:43
閱讀 1281·2019-08-29 16:56
閱讀 2805·2019-08-29 14:16
閱讀 2059·2019-08-28 17:51