Tomcat介紹

来源:https://www.cnblogs.com/shenxm/archive/2018/02/24/8466560.html
-Advertisement-
Play Games

Tomcat介紹 Tomcat Tomcat運行環境 Tomcat安裝運行 Tomcat程式環境 ...


Tomcat介紹

Tomcat

    Tomcat伺服器是Apache組織開發的一種JSP引擎同時支持Servlet,本身具有Web伺服器的功能,可以作為獨立的Web伺服器來使用。
    Tomcat 是一種具有JSP環境的Servlet容器,Servlet容器是代替用戶管理和調用 Servlet的運行時外殼。
        JSP(Java Server Pages)是一種運行於伺服器端的動態網頁開發技術,它基於Java技術,執行JSP時需要在Web伺服器上架設一個編譯JSP網頁的引擎。
        Servlet容器,負責處理客戶請求,當客戶請求來到時,Servlet容器獲取請求,然後調用某個Servlet,並把Servlet的執行結果返回給客戶。當客戶請求某個資源時,Servlet容器使SERVLETREQUEST對象把客戶的請求信息封裝起來,然後調用JAVA Servlet API中定義的Servlet的一些生命周期方法,完成Servlet的執行,接著把Servlet執行的要返回給客戶的結果封裝到SERVLETRESPONSE對象中,最後SERVLET容器把客戶的請求發送給客戶,完成為客戶的一次服務過程。
        
    Tomcat作為Web伺服器方面,Tomcat處理靜態HTML頁面時不如Apache迅速,也沒有Apache健壯,所以我們一般將Tomcat與Apache配合使用,讓Apache對網站的靜態頁面請求提供服務,而Tomcat作為專用的JSP引擎,提供JSP解析,以得到更好的性能。
    
    Tomcat本身就是Apache的一個子項目,所以Tomcat對Apache提供了強有力的支持,對於大多數網站來說,Tomcat是一個很不錯的選擇。
    
    Tomcat 在嚴格意義上並不是一個真正的應用伺服器,它只是一個可以支持運行Serlvet/JSP的Web容器,不過Tomcat也擴展了一些應用伺服器的功能,如JNDI,資料庫連接池,用戶事務處理等等。
    
    Tomcat 伺服器是一個免費的開放源代碼的Web 應用伺服器,屬於輕量級應用伺服器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程式的首選。
    
    Tomcat是Apache 伺服器的擴展,但運行時它是獨立運行的,所以當你運行tomcat 時,它實際上作為一個與Apache 獨立的進程單獨運行的。當配置正確時,Apache 為HTML頁面服務,而Tomcat 實際上運行JSP 頁面和Servlet。
    
    Tomcat和IIS等Web伺服器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的預設模式。
    
    Tomcat處理靜態HTML的能力不如Apache伺服器。
    
    Tomcat以面向對象的方式運行,它可以在運行時動態載入配置文件中定義的對象結構,這有點類似於apache的httpd模塊的調用方式。

Tomcat運行環境

    tomcat使用java語言來編寫,tomcat和php一樣都是用來處理動態程式的(也可以解析靜態資源)。
    tomcat可以處理.jsp或者.do結尾的動態文件,處理時並不是tomcat本身去處理,而是交給後端的jvm來處理,也就是java虛擬機來處理,處理之前先裝入tomcat的類文件,然後由jvm來處理,所以安裝tomcat必須先安裝JDK(Java Development Kit)。
    java開發工具箱在java虛擬機之上,安裝了JDK就相當於安裝java虛擬機,JDK有兩種開源的軟體可以安裝,OpenJDK和Oracle JDK.
    Java代碼的運行:
        *.java(source code) --> javac --> *.class(bytecode)
    jvm:
        class loader,載入程式的類文件,及程式的類文件依賴到的其它的類文件而後運行,整個運行表現為一個jvm進程。
    JVM運行時區域:
        方法區:
            線程共用,用於存儲被JVM載入的class信息、常量、靜態變數、方法等;
        堆:
            是jvm所管理的記憶體中占用空間最大的一部分,也是GC管理的主要區域,存儲對象;
        Java棧:
            線程私有,存儲線程自己的局部變數;
        PC寄存器:
            線程私有的記憶體空間,程式的指令指針;
        本地方法棧:
    JDK:
        瞭解當前的java環境:
            java  -version   
        OpenJDK: 
            java-VERSION-openjdk:
                The OpenJDK runtime environment.
            java-VERSION-openjdk-headless:
                 The OpenJDK runtime environment without audio and video support.
            java-VERSION-openjdk-devel:
                The OpenJDK development tools.  
            CentOS 7:
                VERSION:1.6.0, 1.7.0, 1.8.0
            註意:多版本並存時,可使用 alternatives命令設定預設使用的版本;
        Oracle JDK:
            安裝相應版本的rpm包;
                jdk-VERSION-OS-ARCH.rpm
                例如:jdk-1.8.0_25-linux-x64.rpm 
        註意:安裝完成後,要配置JAVA_HOME環境變數,指向java的安裝路徑;
            OpenJDK:
                JAVA_HOME=/usr
            Oracle JDK:
                JAVA_HOME=/usr/java/jdk_VERSION
    Java 2 EE:
        CGI: Common Gateway Interface
        Servlet:
            類庫;web app;
            Servlet container,Servlet Engine
        JSP: Java Server Page
                類庫:
                    <html>
                        <title>TITLE</title‘
                        >
                        <body>
                            <h1>...</h1>
                            <%
                                ... java code...
                            %>
                        </body>
                    </html>
            .jsp -->jasper--> .java --> javac --> .class --> jvm 
            註意:基於jasper將靜態輸出的數據轉為java代碼進行輸出,結果為servlet規範的代碼;
        JSP Container:
            JSP + Servlet Container
            Java Web Server:JWS
            ASF:JServ
                O'Reilly
                Tomcat 3.x
                Tomcat 4.x
                    Catalina
                http://tomcat.apache.org/
            商業實現:
                WebSphere, WebLogic, Oc4j, Glassfish, Geronimo, JOnAS, JBoss, ...
            開源實現:
                Tomcat, Jetty, Resin, ...
        Tomcat: Java 2 EE技術體系的不完整實現; 
    1、OpenJDK的安裝
        yum install java-1.8.0-openjdk-devel.x86_64 
        確定JDK是否安裝可以使用如下命令
            java -version    ##可以看到版本,說明安裝成功
    2、Oracle JDK的安裝
        在oracle官方網站上下載jdk-8u151-linux-x64.rpm
            http://www.oracle.com/technetwork/java/javase/downloads/index.html  
        rpm -ivh jdk-8u151-linux-x64.rpm 
        cd /usr/java/
        ll      ##有兩個軟鏈接文件,一個指向的是預設的,一個指向的是最新的,這裡只有一個版本,如果有多個版本這兩個軟鏈接會分別指向不同的版本
            total 0
            lrwxrwxrwx 1 root root  16 Nov  3 21:01 default -> /usr/java/latest    
            drwxr-xr-x 9 root root 268 Nov  3 21:01 jdk1.8.0_151
            lrwxrwxrwx 1 root root  22 Nov  3 21:01 latest -> /usr/java/jdk1.8.0_151
        
        cd bin/             ##發現有很多java程式文件,因為不在PATH變數里,所以最好定義PATH變數
        vim  /etc/profile.d/java.sh
            PATH=/usr/java/latest/bin/:$PATH
        .  /etc/profile.d/java.sh     ##生效
        java -version                   ##發現java環境已經準備好了,定義完PATH變數,java虛擬機就會自動開啟
            java version "1.8.0_151"
            Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
            Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

Tomcat安裝運行

    安裝tomca也有兩種方法,一種是base倉庫,另外一種就是到官方站點下載,這裡在上面準備好的OpenJDK上用base倉庫安裝,在Oracle JDK上安裝編譯好的二進位包。
    1、Base Repo:
        yum install tomcat tomcat-admin-webapps tomcat-docs-webapp tomcat-webapps
        rpm -q tomcat                         ##查看版本
        cat /usr/sbin/tomcat                ##可以看到tomcat並不是一個二進位的程式,而是一個腳本文件,通過腳本文件調用java程式。
        service tomcat start
        ps -aux          ##發現tomcat啟動的是一個java虛擬機程式
        jps -v            ##可以看到啟動過程,先裝載tomcat的類文件完成自舉,然後運行java虛擬機程式,所以tamcat真正運行的是一個java程式
        ss -nlt         ##從這也可以看到運行的是java進程
            State       Recv-Q Send-Q                                              Local Address:Port                                                Peer Address:Port 
            LISTEN      0      1                                                ::ffff:127.0.0.1:8005                                                          :::*      users:(("java",5990,52))
            LISTEN      0      100                                                            :::8009                                                          :::*      users:(("java",5990,48))
            LISTEN      0      100                                                            :::8080                                                          :::*      users:(("java",5990,47))
            監聽的埠有三個:8080為http協議的介面,8009為ajp協議的介面,8005為管理介面
        telnet 127.0.0.1 8005
            Trying 127.0.0.1...
            Connected to 127.0.0.1.
            Escape character is '^]'.
            SHUTDOWN   
            Connection closed by foreign host.
        ss -nlt             ##發現tomcat實例被關閉了,所以這個管理埠監聽在本地的8005,這樣比較安全,不然誰telnet到這個埠都可以關閉tomcat,不過一般這個端最好不要監聽,這樣更安全
        進行安全設置
            vim /etc/tomcat/server.xml
             <Server port="8005" shutdown="SHUTDOWN">
            把上面的改成port=-1,就表示關閉埠,或者openssl rand -hex 10 生成一個隨機數來當shuntdown,這樣別人就不知道該怎麼關閉了
        http://172.18.21.106:8080/         ##訪問http協議的介面可以看到web站點
            
    2、Tomcat binary release
        在官方網站上下載
            http://tomcat.apache.org/
        tomcat是屬於apache旗下的產品,這裡下載的是apache-tomcat-7.0.82.tar
        tar -xvf apache-tomcat-7.0.82.tar.gz -C /usr/local
        ln -s apache-tomcat-7.0.82/ tomcat
        useradd tomcat                     ##運行tomcat時最好以普通用戶的身份運行,所以創建一個tomcat用戶
        chown -R root:tomcat ./*       ##修改tomcat目錄下的文件的所有者和所屬組,這裡只修改所屬組為tomcat是因為怕tomcat賬號被別人盜用後,登陸此賬號後修改tomcat內的二進位程式文件
        chown -R tomcat ./{logs,temp,work,webapps,conf}    ##將這些目錄的所有者修改為tomcat,因為在執行tomcat時有可能要修改這些目錄內的文件
        vim /etc/profile.d/tomcat.sh
            PATH=/usr/local/tomcat/bin/:$PATH
        . /etc/profile.d/tomcat.sh
        su - tomcat
        $catalina.sh start       ##利用這個命令來啟動和關閉tomcat
        $catalina.sh --help    
        $ss -nlt                     ##發現埠已經打開
        $ps -aux                   ##發現是以tomcat的身份在運行,如果用root用戶去開啟tomcat會發現tomcat是以root的身份在運行
        catalina.sh version
            Using CATALINA_BASE:   /usr/local/tomcat
            Using CATALINA_HOME:   /usr/local/tomcat
            Using CATALINA_TMPDIR: /usr/local/tomcat/temp
            Using JRE_HOME:        /usr/java/latest
            Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
            Server version: Apache Tomcat/7.0.82      ##可以看到tomcat的版本
            Server built:   Sep 29 2017 12:23:15 UTC
            Server number:  7.0.82.0
            OS Name:        Linux
            OS Version:     3.10.0-514.el7.x86_64
            Architecture:   amd64
            JVM Version:    1.8.0_151-b12                    ##java虛擬機的版本
            JVM Vendor:     Oracle Corporation
        catalina.sh --help
            debug               在調試器中啟動Catalina
            debug -security     採用安全管理調試Catalina
            jpda start          在JPDA調試器中啟動Catalina
            run                 在當前視窗啟動Catalina
            run -security       採用安全管理在當前視窗中啟動
            start               在單獨的視窗中啟動Catalina
            start  -security    在單獨的視窗中採用安全管理啟動
            stop                停止Catalina,等待5秒來進行進程停止
            stop n              停止Catalina,等待N秒來進行進程停止
            stop -force         停止Catalina,等待5秒,若還在運行則使用kill -KILL來停止進程運行
            stop n -force       停止Catalina,等待n秒,若還在運行則使用kill -KILL來停止進程運行
            configtest          在server.xml上運行基礎同步檢查-檢查結果的退出代碼
            version             顯示版本

Tomcat程式環境

    rpm -ql tomcat
        /etc/logrotate.d/tomcat
        /etc/sysconfig/tomcat                ##特殊服務配置文件
        /usr/bin/tomcat-digest
        /usr/bin/tomcat-tool-wrapper
        /usr/lib/systemd/system/tomcat.service
        /usr/lib/systemd/system/[email protected]
        /usr/libexec/tomcat
        /etc/tomcat                               ##配置文件目錄
        /etc/tomcat/server.xml           ##主配置文件
        /etc/tomcat/tomcat.conf            ##全局配置文件
        /etc/tomcat/tomcat-users.xml   ##用戶認證的賬號和密碼文件;角色(role),用戶(User),此文件在tomcat啟動時被裝入記憶體
        /usr/share/tomcat/webapps      ##webapp的預設根目錄
        /usr/sbin/tomcat
        /var/lib/tomcat
        /var/lib/tomcats
        /var/log/tomcat
        /var/log/tomcat/catalina.out
    tomcat的目錄結構
        bin:腳本目錄,及啟動時用到的類。
            catalina.sh,用於啟動和關閉tomcat伺服器
            configtest.sh,用於檢查配置文件
            startup.sh,啟動Tomcat腳本
            shutdown.sh,關閉Tomcat腳本
        conf:配置文件目錄。
            server.xml,Tomcat 的全局配置文件
            web.xml,為不同的Tomcat配置的web應用設置預設值的文件
            tomcat-users.xml,Tomcat用戶認證的配置文件
        lib:庫文件,Java類庫,jar。
            包含被Tomcat使用的各種各樣的jar文件,在Linux/UNIX上任何這個目錄中的文件將被附加到Tomcat的classpath中。
        logs:日誌文件目錄。
            localhost_access_log.2013-09-18.txt,訪問日誌
            localhost.2013-09-18.log,錯誤和其它日誌
            manager.2013-09-18.log,管理日誌
            catalina.2013-09-18.log,Tomcat啟動或關閉日誌文件
        temp:臨時文件目錄;
        webapps:webapp的預設目錄,即Tomcat的主要Web發佈目錄。
            含Web應用的程式 (JSP、Servlet和JavaBean等)
            
        work:工作目錄,存放編譯後的位元組碼文件,即Tomcat將翻譯JSP文件到的Java文件和class文件放在這裡
            由Tomcat自動生成,這是Tomcat放置它運行期間的中間(intermediate)文件(諸如編譯的JSP文件)地方。 
            如果當Tomcat運行時,你刪除了這個目錄那麼將不能夠執行包含JSP的頁面。

    rpm包安裝的程式環境:
        配置文件目錄:/etc/tomcat
            主配置文件:server.xml 
        webapps存放位置:/var/lib/tomcat/webapps/
            examples
            manager
            host-manager
            docs
        Unit File:tomcat.service
        環境配置文件:/etc/sysconfig/tomcat
    
    Tomcat的配置文件預設存放在$CATALINA_HOME/conf目錄中,主要有以下幾個:
        server.xml:主配置文件;
        web.xml:
        context.xml:tomcat-users.xml:;
        catalina.policy:; 
        catalina.properties:;
        logging.properties:;
        server.xml:
             Tomcat的主配置文件,包含Service, Connector, Engine, Realm, Valve, Hosts主組件的相關配置信息。
        web.xml:
            每個webapp只有“部署”後才能被訪問,它的部署方式通常由web.xml進行定義,其存放位置為WEB-INF目錄中,此文件為所有的webapps提供預設部署相關的配置。
            遵循Servlet規範標準的配置文件,用於配置servlet,併為所有的Web應用程式提供包括MIME映射等預設配置信息。
            web.xml基於Java Servlet規範,可被用於每一個Java servlet容器,通常有兩個存放位置,$CATALINA_BASE/conf和每個Web應用程式(通常是WEB-INF/web.xml)。
            Tomcat在deploy一個應用程式時(包括重啟或重新載入),它首先讀取conf/web.xml,而後讀取WEB-INF/web.xml。
        tomcat-user.xml:
            用戶認證的賬號和密碼文件,角色(role),用戶(User),此文件在tomcat啟動時被裝入記憶體。
            Realm認證時用到的相關角色、用戶和密碼等信息,Tomcat自帶的manager預設情況下會用到此文件,在Tomcat中添加/刪除用戶,為用戶指定角色等將通過編輯此文件實現。
        catalina.policy:
            Java相關的安全策略配置文件,在系統資源級別上提供訪問控制的能力。
            當使用-security選項啟動tomcat時,用於為tomcat設置安全策略。
        catalina.properties:
            Java屬性的定義文件,用於設定類載入器路徑,以及一些與JVM調優相關參數。
            Tomcat內部package的定義及訪問相關的控制,也包括對通過類裝載器裝載的內容的控制,Tomcat在啟動時會事先讀取此文件的相關設置。
        logging.properties: 
            日誌系統相關的配置。
            Tomcat通過自己內部實現的JAVA日誌記錄器來記錄操作相關的日誌,此文件即為日誌記錄器相關的配置信息,可以用來定義日誌記錄的組件級別以及日誌文件的存在位置等。
        context.xml:
            所有host的預設配置信息。
            每個webapp都可以使用的配置文件,它通常由專用的配置文件context.xml來定義,其存放位置為WEB-INF目錄中,此文件為所有的webapps提供預設配置。
    
    JSP WebAPP的組織結構:
            /:     webapps的根目錄
            index.jsp:主頁;
            WEB-INF/:當前webapp的私有資源路徑,通常用於存儲當前webapp的web.xml和context.xml配置文件;
            META-INF/:類似於WEB-INF/;
            classes/:類文件,當前webapp所提供的類;
            lib/:類文件,當前webapp所提供的類,被打包為jar格式;

    Tomcat的Web應用程式目錄組成
        頁面內容等文件的存放位置:
            *.html, *.jsp等可以有許多目錄層次,由用戶的網站結構而定,實現的功能應該是網站的界面,也就是用戶主要的可見部分。
            除了HTML文件、JSP文件外,還有js(JavaScript)文件和css(樣式表)文件以及其他多媒體文件等。
        Web-INF/web.xml 
            這是一個Web應用程式的描述文件。
            這個文件是一個XML文件,描述了Servlet和這個Web應用程式的其他組件信息,此外還包括一些初始化信息和安全約束等等。
        Web-INF/classes/ 
            這個目錄及其下的子目錄應該包括這個Web應用程式的所有JavaBean及Servlet等編譯好的Java類文件(*.class)文件,以及沒有被壓縮打入JAR包的其他class文件和相關資源。
            註意,在這個目錄下的Java類應該按照其所屬的包層次組織目錄(即如果該*.class文件具有包的定義,則該*.class文件應該放在.\WEB-INF\classes\包名下)。
            這個目錄下的類文件也可以打包成JAR文件,並可以放到WEB-INF下的lib目錄下,如將 classes目錄下的各個*.class文件打包成WebMis.jar文件(jar cvf WebMis.jar *.*)
        common/lib/ 
            這個目錄下包含了所有壓縮到JAR文件中的類文件和相關文件。
            比如:第三方提供的Java庫文件、JDBC驅動程式等。
            其中msbase.jar、mssqlserver.jar、msutil.jar文件為SqlServer2000的JDBC驅動程式
            其中servlet-api.jar和jsp-api.jar為Servlet和JSP的API所在的包
        
    webapp歸檔格式:
        tree /usr/share/tomcat/webapps/ 可以看到根目錄結構
        .war:webapp,一般生產中用到的都是這種格式的打包好的程式文件,只要把它扔到網頁程式文件存放的目錄下就會自動展開這個文件,不用解壓包
        .jar:EJB的類打包文件(類庫);
        .rar:資源適配器類打包文件;
        .ear:企業級webapp;
        
    部署(deploy) webapp的相關操作:
        deploy:將webapp的源文件放置於目標目錄(網頁程式文件存放目錄),配置tomcat伺服器能夠基於web.xml和context.xml文件中定義的路徑來訪問此webapp,將其特有的類和依賴的類通過class loader裝載至JVM。
            部署有兩種方式:
                自動部署:auto deploy
                手動部署:+
                    冷部署:把webapp複製到指定的位置,而後才啟動tomcat;
                    熱部署:在不停止tomcat的前提下進行部署;
                        熱部署工具:manager、ant腳本、tcd(tomcat client deployer)等;                   
        undeploy:拆除(反部署),停止webapp,並從tomcat實例上卸載webapp;
        start:啟動處於停止狀態的webapp;
        stop:停止webapp,不再向用戶提供服務;其類依然在jvm上;
        redeploy:重新部署;

    tomcat的兩個管理應用:
        manager
        host-manager

    示例:
        手動提供一測試類應用,並冷部署:
            # mkidr  -pv  /usr/local/tomcat/webapps/test/{classes,lib,WEB-INF}
            創建文件/usr/local/tomcat/webapps/test/index.jsp 
                <%@ page language="java" %>
                <%@ page import="java.util.*" %>
                <html>
                    <head>
                        <title>Test Page</title>
                    </head>
                    <body>
                        <% out.println("hello world");%>
                    </body>
                </html>

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ASP.NET Core Razor 頁面作為 ASP.NET Core 2.0的一部分發佈,它是基於頁面的全新的Web開發框架。如果您想學習如何使用 ASP.NET Core Razor 頁面,可以訪問微軟的官方站點 ,但是是內容介紹的比較簡單。Mike Brind(博客: ) 提供的一個站點 , ...
  • 本文只講有關於在 Windows+C#中使用Redis所需要用到的資源,不涉及在C#中使用Redis的編程示例,整體過程我把它分為三個步驟,並按標題的順序逐一實現。 1、下載並安裝Redis服務 需要先下載Redis服務,並安裝於操作系統中,安裝步驟和安裝其它的Windows程式一樣,這裡就不花多餘 ...
  • CAN匯流排知識整理 一、特點 二、CAN物理層 隱性(邏輯1),顯性(邏輯0)。 三、CAN數據鏈路層 3.1通信機制 3.2數據幀 3.3錯誤幀 3.4其它幀格式 3.5位定時與同步 ...
  • pwd : print name of current/working directory 顯示路徑 ...
  • rsync是一個開源、快速的、多動能的、可以實現全量,增量的本地或遠程數據同步備份工具,它適用於多種操作系統平臺。 1、rsync的特性(功能) (1)支持拷貝特殊文件(如鏈接文件、設備文件) (2)拷貝時可以排除目錄中目錄或文件不需要同步的功能 (3)可以保持源文件或目錄的屬性不發生改變 (4)可 ...
  • 當自己認為學會了的知識並且總結後以為自己明白了這部分知識時,再次學習才發現自己認識的很片面。也許這就是要書讀百遍的意義所在吧。在學習《機器人學導論》這本書時, DH參數的建立正如公式上表達的那樣。需要有四個參數,建立坐標系時,通過在相鄰連桿的Z軸和X軸的建立,減少坐標的建立形式,在根據右手法則確定Y ...
  • 項目流程 弄清需求(需要完成什麼) 設計框架(怎麼實現需求) 編寫代碼(怎麼通過代碼設計) 測試 弄清需求 (1)上電,LCD顯示一副圖片 (2)根據配置文件,決定停留當前界面還是自動顯示下一張 (3)點擊一下,出現一個對話框(手動顯示,自動顯示) (4)上放大,下縮小,左右滑動切換圖片 (5)左右 ...
  • 一、輸出重定向 命令 > 文件 將標準輸出重定向到一個文件中(清空原有文件的數據) 命令 2> 文件 將錯誤輸出重定向到一個文件中(清空原有文件的數據) 命令 >> 文件 將標準輸出重定向到一個文件中 (追加到原有內容的後面) 命令 2>> 文件 將錯誤輸出重定向到一個文件中(追加到原有內容的後面) ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...