開啟Jasper的JSP預編譯支援
不少Java Web容器(如Tomcat, Jetty等等)都採用Apache Jasper作為其JSP容器,用它來對JSP檔案進行編譯,呼叫由JSP編譯成的Servlet等。在這類Web容器中,只要將jsp檔案按副檔名對映到org.apache.jasper.servlet.JspServlet,就可以將JSP全權交由Jasper來處理,免去了自行編寫JSP處理邏輯的麻煩。
JSP預編譯是指在部署一個Web應用前(或部署時),就將Web應用中所有的JSP檔案編譯成Servlet的.class檔案,這樣在客戶端訪問JSP時,JSP容器不再對JSP檔案進行編譯,而是直接尋找編譯好的.class檔案進行載入和呼叫。JSP預編譯可以提高Web應用的效能,同時,Web應用開發者可以在部署前就將所有JSP編譯成.class檔案,然後將JSP檔案刪去,這樣可以使JSP程式碼不被不該看的人看到。編譯成的.class檔案應放在Web應用的WEB-INF/classes目錄下,包名為org.apache.jsp,檔名模式為“JSP檔案的主名_副檔名.class”,例如index.jsp對應的.class檔案為index_jsp.class。
部署時進行JSP編譯的方法不在本文討論範圍之內,我們只討論如何讓Jasper啟用JSP預編譯支援。
在JspServlet(它是一個servlet)的初始化引數裡有一個“usePrecompiled”,我們只要將其設為True即可啟用JSP預編譯支援。不同的Web容器在不同的地方進行此項配置,我們以Jetty 6.1.24為例:在etc/webdefault.xml中有如下一段:
<servlet id="jsp">
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>logVerbosityLevel</param-name>
<param-value>DEBUG</param-value>
</init-param>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
與這裡面所有的init-param標籤並列地,再新增一個如下內容的init-param標籤即可:
<init-param>
<param-name>usePrecompiled</param-name>
<param-value>true</param-value>
</init-param>
也可以通過修改Jetty 6.1.24程式碼來進行,在org.mortbay.jetty.webapp.WebXmlConfiguration.initServlet(Node)方法中的以“if (id!=null && id.equals("jsp"))”打頭的程式碼塊中新增如下一條語句即可:
holder.setInitParameter("usePrecompiled", "true");
相關推薦
開啟Jasper的JSP預編譯支援
不少Java Web容器(如Tomcat, Jetty等等)都採用Apache Jasper作為其JSP容器,用它來對JSP檔案進行編譯,呼叫由JSP編譯成的Servlet等。在這類Web容器中,只要將jsp檔案按副檔名對映到org.apache.jasper.ser
錯誤:fatal error C1083: 無法開啟預編譯標頭檔案:“Debug/DistanceMeasure.pch”: No such file or directory
錯誤:fatal error C1083: 無法開啟預編譯標頭檔案:“Debug/DistanceMeasure.pch”: No such file or directory 這種錯誤是不存在預編譯的.pch檔案,即沒有建立。 網上各種方法都是不使用預編譯,其實這樣
HbuildX(綠版)開啟對less等的預編譯
HbuildX開啟對less的預編譯 在使用HbuildX十分(綠色的版本)的時候安裝less,sass等外掛後發現每次儲存less檔案後一定要從文件中應用外部命令才會使我們的CSS檔案發生對應改變,十分的浪費時間,然後網上找HbuildX開啟對less的預編譯,發現搜到的都是Hbuil
無法開啟預編譯標頭檔案的解決方法及預編譯頭原理[ZZ]
1。用VC.NET編輯程式,按Ctrl+F7,出現下列錯誤: fatal error C1083: 無法開啟預編譯標頭檔案:“Debug/UGFace.pch”: No such file or directory 解決方法:修改:專案->屬性->C/C
fatal error C1083: 無法開啟預編譯標頭檔案 的解決方法
在VS中移植工程,尤其是含有StdAfx.h和StdAfx.cpp這兩個檔案的工程,重新編譯時常發生“fatal error C1083: 無法開啟預編譯標頭檔案”的錯誤。如何解決呢?下面以VS2010為例說明解決步驟 1. 在解決方案資源管理器中,工程名上點右鍵,選擇“屬
error無法開啟預編譯標頭檔案的解決方法及預編譯頭原理
1。用VC.NET編輯程式,按Ctrl+F7,出現下列錯誤: fatal error C1083: 無法開啟預編譯標頭檔案:“Debug/UGFace.pch”: No such file or directory 解決方法:修改:專案->屬性->C/C++
MySQL的JDBC驅動原始碼解析 預編譯開啟
一、背景 現在我們淘寶持久化大多數是採用iBatis+MySQL做開發的,大家都知道,iBatis內建引數,形如#xxx#的,均採用了sql預編譯的形式,舉例如下: <span style="font-size:18px;"><sel
ANPM-Apache_httpd-Nginx-PHP-MySQL 官方預編譯包源(Pre-Built Packages Repository)收集
apache httpd nginx php mysql ANPM-Apache_httpd-Nginx-PHP-MySQL 官方預編譯包源(Pre-Built Packages Repository)收集Apache_httpdNginxhttp://nginx.org/en/linux
IIS預編譯提升載入速度
microsoft -i for 感覺 初始化 重新 -m 選擇 req 當我們把站點部署在IIS7或IIS6S的時候,每當IIS或是ApplicationPool重新啟動後,第一次請求站點反應總是非常慢。原因大家都知道(不知道能夠參考這個動畫說明ASP.NET網
SQL攻擊-預編譯--緩存
可維護性 ins 可讀性 問號 wid 都是 比較 緩存 query PreparedStatement l 它是Statement接口的子接口; l 強大之處: 防SQL攻擊; 提高代碼的可讀性、可維護性; 提高效率! l 學習PreparedS
C預編譯宏
class copy lin turn -- urn ces stdio.h std /* ============================================================================ Name
VC++ 使用預編譯頭
radius 而已 tools filters mpi 鏈接 res 普通 mov 一、使用默認的預編譯頭 要使用預編譯頭,我們必須指定一個頭文件,這個頭文件包含我們不會經常改變的代碼和其他的頭文件,然後我們用這個頭文件來生成一個預編譯頭文件(.pch文件),想
預編譯封裝
cti array etc 元素 傳遞 param name 名稱 結構 /** * 獲取查詢結果並封裝為一個對象數組 * @param $sql 需要執行的SQL語句 * @param array $arr 預編譯語
#include”* .h“ 在查找預編譯頭使用時跳過
ios warning 跳過 ima stream bsp 分享 strong ges warning C4627: “#include <windows.h>”: 在查找預編譯頭使用時跳過 解決辦法: 原因是沒有在cpp文件
mybatis深入理解之 # 與 $ 區別以及 sql 預編譯
tcl nec from esql 校驗 ntp code 理解 替換字符串 mybatis 中使用 sqlMap 進行 sql 查詢時,經常需要動態傳遞參數,例如我們需要根據用戶的姓名來篩選用戶時,sql 如下: select * from user where nam
一張圖掌握移動Web前端所有技術(大前端、工程化、預編譯、自動化)
移動前端 web 工程化 webpack 你要的移動web前端都在這裏!大前端方向:移動Web前端、Native客戶端、Node.js、大前端框架:React、Vue.js、Koa跨終端技術:HTML 5、CSS 3、JavaScript跨平臺框架:React Native、Cordova前端
深入理解C語言的預編譯指令之include
get http npe target info pdb tfs mar 語言 慫b促64u父猩84卵ml0http://www.facebolw.com/space/2101977 0俜垂屹17該性膠1http://tushu.docin.com/hmd622 6PD
NDK開發使用cMake方式 - 添加其他的預編譯庫
csdn per highlight 方式 make ati lists sdn jni NDK 開發使用cMake方式,網上能找到不少的教程,這裏推薦一篇博文: http://blog.csdn.net/wl9739/article/details/52607010 關於
MySQL的預編譯功能
.cn 支持 right amp print div 服務 nec rom 1、預編譯的好處 大家平時都使用過JDBC中的PreparedStatement接口,它有預編譯功能。什麽是預編譯功能呢?它有什麽好處呢? 當客戶發送一條SQL語句給服務器後,服務器總是
php mysqli預編譯
name use value sel sele mys rom sqli 2-2 <?php /** * mysqli預編譯 */ //1、創建mysqli對象 $mysqli = new MYSQLI("wk.php","root","root","db_