国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

嵌入式 tomcat的使用

Hydrogen / 2237人閱讀

摘要:是的寫法新建項目,結構如下文件打包啟動包放到目錄下,啟動訪問使用插件,構建嵌入式容器文件中添加打包啟動訪問解壓包,找到可以得出的啟動類模擬,構建嵌入式容器源碼訪

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
                  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

相關文章

  • FineBI中tomcat服務器部署

    摘要:即直接啟動即自動打開的服務器,自動布署成功。進入,雙擊啟動服務器測試部署輸入訪問地址可成功看到訪問界面。至此的部署就結束了。 Tomcat服務器部署 tomcat服務器是免費的且性能相對穩定的web應用服務器,在許多中小型企業中很受歡迎 FineBI支持的版本:tomcat6.0及以上版本 FineBI支持的JDK版本:jdk1.6及以上版本 1.1 獨立部署 獨立部署指的是在一個服務...

    dabai 評論0 收藏0
  • FineBI中tomcat服務器部署

    摘要:即直接啟動即自動打開的服務器,自動布署成功。進入,雙擊啟動服務器測試部署輸入訪問地址可成功看到訪問界面。至此的部署就結束了。 Tomcat服務器部署 tomcat服務器是免費的且性能相對穩定的web應用服務器,在許多中小型企業中很受歡迎 FineBI支持的版本:tomcat6.0及以上版本 FineBI支持的JDK版本:jdk1.6及以上版本 1.1 獨立部署 獨立部署指的是在一個服務...

    HackerShell 評論0 收藏0
  • ActiveMQ 嵌入Tomcat

    摘要:嵌入在一些項目中,單獨開啟一個,對于項目實施來說有時略顯繁瑣。待啟動后,選擇所在的進程。連接后選擇頁簽紅框的地方分別為已消費和已進入中的消息的條數。 ActiveMQ 嵌入Tomcat 在一些項目中,單獨開啟一個ActiveMQ,對于項目實施來說有時略顯繁瑣。所以我們將ActiveMQ內嵌到Tomcat,Tomcat啟動同時就順帶啟動了ActiveMQ。由此我們需要掌握三個個重要的知識...

    curlyCheng 評論0 收藏0
  • SpringBoot應用部署于外置Tomcat容器

    摘要:但考慮到實際的情形中,我們的服務器一般是另外部署好了的,有專門的維護方式。此時我們需要剝離掉應用內置的服務器,進而將應用發布并部署到外置的容器之中,本文就實踐一下這個。 showImg(https://segmentfault.com/img/remote/1460000015173574); 0x01. 概述 SpringBoot平時我們用的爽歪歪,爽到它自己連Tomcat都自集成...

    draveness 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<