熟悉JAVA web開發的朋友都知道JSP會被轉換成java檔案(預編譯),然後編譯成class使用,即按照JSP-->java-->class的過程進行編譯。 由于JVM隻認識class檔案,它不知道什麼是JSP,是以在tomcat中 如何把JSP解析成java檔案 就是本文所要描述的問題。 如有錯誤,請予指正。
Jasper是tomcat中使用的JSP引擎,在Tomcat 6中使用的是Jasper 2,相對于原來的版本作了不少的改進,比如:JSP的标簽緩沖池、背景編譯、頁面改變時自動重新編譯、Eclipse中JDT編譯等等。
那麼Jasper到底是做什麼的呢?
簡單的說,就是把JVM不認識的JSP檔案解析成java檔案,然後編譯成class檔案提供使用。目前有很多的JSP解析引擎,Tomcat中使用的是Jasper。
在Tomcat中可以通過配置 CATALINA_HOME/conf/web.xml 中的内容,配置Jasper的選項(web.xml中的内容很長,截取其中的一部分):
<a></a>
具體的參數,上面都有解釋,這裡就不多贅述了。
都是些調節JSP編譯的參數,比如多長時間檢測一次,debug的調試資訊相關配置,編譯資訊等等。
1 jasper相關jar包
在tomcat6中提供了幾個jasper的jar包,相對于之前版本,去掉了jasper-compiler.jar以及jasper-runtime.jar,合并為jasper.jar
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZwpmLzkjN5IzM3cDM2UjNxEjMvwlNwUTMwIzLcRjNwkDN08CX1EDMyc2bsJ2Lc12bj5ycn9Gbi52YuAzcldWYtl2Lc9CX6MHc0RHaiojIsJye.jpg)
另外如果開發者自己想要編譯JSP,還需要使用ant以及tomcat-juli.jar。
2 ant相關jar包
其中ant相關的jar包可以去官網下載下傳ant.zip,然後解壓提取其中lib内的jar包。
3 tomcat-juli相關jar包
tomcat-juli.jar位于CATALINA_HOME/bin/目錄下。
在Eclipse的建構路徑下添加上述相關的jar包即可,然後建立測試類:
添加JAR包步驟:右鍵工程-->Properties-->Java Build Path-->Libraries-->Add External JARs-->選擇添加的JAR包-->OK
可以使用兩種方式進行自定義的JSP編譯。
測試後,可以在 F:/test 目錄下發現編譯出的index.jsp的java檔案以及class檔案。