国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison php教程 PHP開發(fā) jsp 自動編譯機制詳細介紹

jsp 自動編譯機制詳細介紹

Dec 03, 2016 am 09:40 AM
jsp

jsp 自動編譯機制詳細介紹

總的來說,Jasper的自動檢測實現的機制比較簡單,依靠某后臺線程不斷檢測JSP文件與編譯后的class文件的最后修改時間是否相同,若相同則認為沒有改動,但倘若不同則需要重新編譯。實際上由于在Tomcat部署的項目的JSP可能引入了其他頁面,或者引入了其他jar包,而且這些資源都可能是遠程的資源,所以實際處理會比較復雜,同樣要遍歷檢測這些引入的不同資源是否做了修改。

22.png

上圖是一個形象的示意圖,我們知道Tomcat架構中有四個級別的容器,Engine、Host、Context和Wrapper,而jsp編譯對應在wrapper級別,所以通過StandardWrapper不斷執(zhí)行任務去調用jasper,而jasper則不斷檢測校驗本地和遠程的各種資源,一旦發(fā)現需要重新編譯則進行重編譯。往下看看具體如何實現。

首先,需要一個后臺執(zhí)行線程,Tomcat中有專門的一條線程處理不同容器的background任務,想在不同的容器中執(zhí)行某些后臺任務只需重寫backgroundProcess方法即可實現,由于JspServlet對應于Wrapper級別,所以要在StandardWrapper中重寫backgroundProcess,它會調用實現了PeriodicEventListener接口的Servlet,其中JspServlet就實現了PeriodicEventListener接口,此接口只有一個periodicEvent方法,具體的檢測邏輯在此方法中實現即可。

其次,檢測判斷重新編譯的根據是什么?重新編譯就是再次把jsp變成Java再變成class,而觸發(fā)這個動作的條件就是當我們修改了某個jsp文件后,或者某jsp文件引入的資源被修改后,都將觸發(fā)重新編譯動作,所以最好的判斷依據就是某jsp或資源的最后修改時間lastmodified屬性,正常順序是jsp經過編譯后生成class文件,把此class文件的lastmodified屬性設置成jsp文件的lastmodified,此時兩個文件的lastmodified屬性是相同的,當我們改了jsp文件保存后,jsp的lastmodified屬性就被置為當前時間,此時通過判斷兩個文件的lastmodified屬性決定是否重新編譯。重新編譯后jsp與class文件的lastmodified屬性再次被置為相同。對于引入的資源,內存中維護了上次編譯時引入資源的lastmodified屬性,不斷獲取引入資源的lastmodified屬性并與內存中對應的lastmodified屬性進行比較,同樣可以很容易判斷是否需要重新編譯。

最后,對于本地和遠程資源分別如何檢測?對于本地資源來說,使用java.io.File類可以很方便的實現對某JSP文件或其他文件的lastmodified屬性讀取。對于遠程資源,比如jar包,為了方便處理jar包含的屬性,使用java.NET.URL可以很方便操作,它包含了很多協議,例如常見的jar、file、ftp等協議,使用相當方便,

URL includeUrl = new URL("jar:http://hostname/third.jar!/");
URLConnection iuc = includeUrl.openConnection();
long includeLastModified = ((JarURLConnection) iuc).getJarEntry().getTime();

只需三步即完成對遠程jar包的讀取且取出最后修改時間。當然URL還支持本地文件資源的讀取,所以它是很好的資源讀取抽象對象,Tomcat中對引入資源的管理都是使用URL作為操作對象。

本小節(jié)探討了Jasper自動檢測機制的實現,自動檢測機制給我們的開發(fā)帶來了很好的體驗,我們不必自己修改了jsp后自己去執(zhí)行編譯操作,而是tomcat通過jasper幫我們定時檢測編譯操作。

感謝閱讀,希望能幫助到大家


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276
JSP est-il front-end ou back-end ? JSP est-il front-end ou back-end ? Jan 28, 2023 pm 06:23 PM

jsp appartient au backend. L'essence de jsp est un servlet, et le servlet est une application Java c?té serveur, donc jsp est une technologie back-end. JSP est déployé sur le serveur réseau et peut répondre aux requêtes envoyées par le client et générer dynamiquement des pages Web de documents HTML, XML ou autres formats en fonction du contenu de la requête, puis les renvoyer au demandeur. La technologie JSP utilise Java comme langage de script pour fournir des services pour les requêtes HTTP des utilisateurs et peut gérer des exigences commerciales complexes avec d'autres programmes Java sur le serveur.

Comment implémenter la fonction de pagination jsp Comment implémenter la fonction de pagination jsp Mar 04, 2024 pm 04:40 PM

étapes de mise en ?uvre?: 1. Introduire la bibliothèque de balises JSTL dans la page JSP?; 2. Obtenir les données de la base de données?; 3. Paginer les données 4. Afficher la barre de navigation de pagination dans la page?; numéro et chaque page, récupérez simplement les données correspondantes des données de pagination et affichez-les sur la page.

Quelle est la différence entre jsp et html Quelle est la différence entre jsp et html Jan 09, 2024 am 10:46 AM

La différence entre jsp et html?: 1. Mécanisme de fonctionnement?; 2. Objectif?; 3. Relation avec Java?; 4. Fonction?; 5. Relation avec le back-end?; ; 9. Suffixes de fichiers et outils d'identification?; 10. Communauté et support?; Introduction détaillée : 1. Mécanisme de fonctionnement. HTML est un langage de balisage, principalement utilisé pour décrire et définir le contenu des pages Web. Il s'exécute sur le client et est interprété et exécuté par le navigateur. JSP est une technologie de page Web dynamique qui s'exécute sur. le c?té serveur, etc. attendez.

JSP peut-il être remplacé par PHP ? JSP peut-il être remplacé par PHP ? Mar 21, 2024 am 11:03 AM

JSP peut-il être remplacé par PHP ? JSP (JavaServerPages) et PHP (HypertextPreprocessor) sont des langages de script c?té serveur couramment utilisés pour générer dynamiquement le contenu de pages Web. Bien qu’ils aient chacun leurs propres caractéristiques et avantages, peuvent-ils se remplacer complètement dans les applications pratiques ? Cet article analysera les avantages et les inconvénients des deux et les comparera à travers des exemples de code spécifiques. Voyons d’abord les caractéristiques respectives de JSP et PHP. JSP est basé sur Java

Quel est le format jsp ? Quel est le format jsp ? Jan 24, 2024 pm 04:01 PM

?JSP est une norme de technologie Web dynamique. Son format de fichier consiste à insérer des segments de programme Java (Scriptlet) et des balises JSP (tags) dans les fichiers HTML de pages Web traditionnelles (.htm, .html) pour former des fichiers JSP (*.jsp).

Comment utiliser jsp+mysql pour implémenter une requête de pagination sur des pages Web Comment utiliser jsp+mysql pour implémenter une requête de pagination sur des pages Web May 30, 2023 pm 03:58 PM

1. L'instruction SQL principale pour implémenter la requête de pagination (1) L'instruction SQL pour interroger le nombre total d'enregistrements dans la base de données : selectcount(*)from+(table name); (2) L'instruction SQL pour interroger le nombre d'enregistrements pour chaque requête?: où?: 0 est l'index recherché, 2 est le nombre d'éléments recherchés à chaque fois. select*from table name limit0,2; 2. Implémentation du code* J'ai écrit ces deux classes dans l'article précédent, classe DBconnection : utilisée pour obtenir des connexions à la base de données, classe d'objet Author. Cliquez sur le lien pour afficher le code de ces deux classes. Cliquez sur le lien pour afficher la classe DBconnection et la classe d'objet Author (1) Page de connexion?: index.jsp. Insérer le titre ici la colonne utilisateur

Comment intégrer JSP dans le projet SpringBoot Comment intégrer JSP dans le projet SpringBoot May 12, 2023 pm 07:40 PM

Une fois le nouveau projet Springboot créé, le répertoire est le suivant?: étape 1?: Ajoutez le code du package jar requis pour configurer jsp au fichier pom du projet?: org.apache.tomcat.embedtomcat-embed-jasperprovided étape 2?: Créez un nouveau répertoire webapp sous le chemin principal, créez un nouveau chemin WEB-INF sous webapp, créez un nouveau chemin jsp sous WEB-INF et placez le fichier jsp que nous voulons utiliser sous ce chemin étape 3 : Configurez le chemin d'accès et le code de suffixe de. le fichier jsp dans le fichier de configuration principal : spring .mvc.view.prefix=/WEB-INF/jsp/sp

PHP peut-il remplacer les fonctionnalités de JSP ? PHP peut-il remplacer les fonctionnalités de JSP ? Mar 20, 2024 pm 03:45 PM

PHP peut-il remplacer les fonctionnalités de JSP ? à mesure que la technologie de développement Web continue d'évoluer, les développeurs sont souvent confrontés au choix du langage c?té serveur approprié pour mettre en ?uvre les besoins de leur projet. à cet égard, PHP et JSP sont deux choix courants. JSP est l'abréviation de JavaServerPages, qui est une technologie c?té serveur basée sur Java, tandis que PHP est un langage de script c?té serveur. Cet article explorera si PHP peut remplacer les fonctions de JSP et fournira des exemples de code spécifiques pour aider les lecteurs à mieux comprendre

See all articles