每次訪問jsp都要編譯
⑴ JSP頁面是不是需要重新編譯
不需要 jsp頁面只是個前台頁面而已 你只需要引入js jqury 等jar包路徑就可以 求採納
⑵ jsp文件需要編譯嗎如果需要,那麼編譯過程是怎麼樣的
jsp文件需要編譯成servlet在web容器中運行的。
編譯過程如下:
1、用戶訪問jsp頁面時,jsp的處理過程如下圖所示:

2、編譯階段
預處理階段把jsp文件解析為java代碼,編譯階段jsp引擎把java代碼編譯成servlet類文件,對於Tomcat,生成的class文件默認情況下存放在<Tomcat>/work目錄下。
⑶ jsp為什麼會編譯一次
你先熟悉一下jsp 的工作原理吧,
在一個JSP文件第一次被請求時,JSP引擎把該JSP文件轉換成為一個servlet。而這個引擎本身也是一個servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。 JSP引擎先把該JSP文件轉換成一個Java源文件,在轉換時如果發現jsp文件有任何語法錯誤,轉換過程將中斷,並向服務端和客戶端輸出出錯信息;如果轉換成功, JSP引擎用javac把該Java源文件編譯成相應的class文件。然後創建一個該SERVLET的實例,該SERVLET的jspInit()方法被執行,jspInit()方法在servlet的生命周期中只被執行一次。然後jspService()方法被調用來處理客戶端的請求。對每一個請求,JSP引擎創建一個新的線程來處理該請求。如果有多個客戶端同時請求該JSP文件,則JSP引擎會創建多個線程。每個客戶端請求對應一個線程。以多線程方式執行可大大降低對系統的資源需求,提高系統的並發量及響應時間.但應該注意多線程的編程限制,由於該servlet始終駐於內存,所以響應是非常快的。如果.jsp文件被修改了,伺服器將根據設置決定是否對該文件重新編譯,如果需要重新編譯,則將編譯結果取代內存中的servlet,並繼續上述處理過程。雖然JSP效率很高,但在第一次調用時由於需要轉換和編譯而有一些輕微的延遲。此外,如果在任何時候如果由於系統資源不足的原因,JSP引擎將以某種不確定的方式將servlet從內存中移去。當這種情況發生時jspDestroy()方法首先被調用, 然後servlet實例便被標記加入"垃圾收集"處理。 jspInit()及jspDestory()格式如下:可在jspInit()中進行一些初始化工作,如建立與資料庫的連接,或建立網路連接,從配置文件中取一些參數等,在jspDestory()中釋放相應的資源
⑷ 什麼是 jsp 的預編譯特徵
1.2 JSP技術特徵
JSP技術所開發的Web應用程序是基於Java的,它擁有Java語言跨平台的特性,以及業務代碼分離、組件重用、基礎Java Servlet功能和預編譯等特徵。
1.2.1 跨平台
既然JSP是基於Java語言的,那麼它就可以使用Java API,所以它也是跨平台的,可以應用在不同的系統中,如Windows、Linux、Mac和Solaris等。這同時也拓寬了JSP可以使用的Web伺服器的范圍。另外,應用於不同操作系統的資料庫也可以為JSP服務,JSP使用JDBC技術操作資料庫,從而避免了代碼移植導致更換資料庫時的代碼修改問題。
正是因為跨平台的特性,使得採用JSP技術開發的項目可以不加修改地應用到任何不同的平台上,這也應驗了Java語言的"一次編寫,到處運行"的特點。
1.2.2 業務代碼分離
採用JSP技術開發的項目,通常使用HTML語言來設計和格式化靜態頁面的內容,而使用JSP標簽和Java代碼片段來實現動態部分。程序開發人員可以將業務處理代碼全部放到JavaBean中,或者把業務處理代碼交給Servlet、Struts等其他業務控制層來處理,從而實現業務代碼從視圖層分離。這樣JSP頁面只負責顯示數據即可,當需要修改業務代碼時,不會影響JSP頁面的代碼。
1.2.3 組件重用
JSP中可以使用JavaBean編寫業務組件,也就是使用一個JavaBean類封裝業務處理代碼或者作為一個數據存儲模型,在JSP頁面甚至整個項目中都可以重復使用這個JavaBean。JavaBean也可以應用到其他Java應用程序中,包括桌面應用程序。
1.2.4 繼承Java Servlet功能
Servlet是JSP出現之前的主要Java Web處理技術。它接受用戶請求,在Servlet類中編寫所有Java和HTML代碼,然後通過輸出流把結果頁面返回給瀏覽器。其缺點是:在類中編寫HTML代碼非常不便,也不利於閱讀。使用JSP技術之後,開發Web應用便變得相對簡單快捷多了,並且JSP最終要編譯成Servlet才能處理用戶請求,因此我們說JSP擁有Servlet的所有功能和特性。
1.2.5 預編譯
預編譯就是在用戶第一次通過瀏覽器訪問JSP頁面時,伺服器將對JSP頁面代碼進行編譯,並且僅執行一次編譯。編譯好的代碼將被保存,在用戶下一次訪問時,直接執行編譯好的代碼。這樣不僅節約了伺服器的CPU資源,還大大提升了客戶端的訪問速度
⑸ jsp什麼時候需要編譯什麼時候不需要
jsp要轉換成servlet,servlet才能經過編譯class文件 在調用構造方法,init方法等。jsp只要沒有被改動,就不用編譯,
⑹ 使用eclipse每修改一次jsp或者java等文件,eclipse就編譯整個項目
eclipse可以設置部分編譯的,之編譯改動過的java或者jsp頁面。
1、設置自動編譯:
打開路徑:project->build automatically;
如果不會編譯的話檢查工程項目上有沒有打小紅叉,項目報錯時,eclipse是不自動編譯的。
2、去build目錄下把編譯好的class文件直接放到tomcat的catlina目錄下重啟服務運行。
⑺ 怎樣令jsp每次執行時都能重新被編譯一遍
想要將我們自己的jsp文件上傳到EBS中並在EBS的容器內運行,通常情況下你需要如下幾部操作:將你的jsp文件通過FTP上傳至$OA_HTML下,為這個jsp文件在EBS中定義一個功能(即Function)將該功能指定到一個你的用戶所擁有的職責可以訪問的菜單下當你運行的時候,你很可能會遇到找不到java類如下錯誤:javax.servlet.ServletException: oracle.classloader.util. 解決方案導致找不到java類的原因是這個jsp根本就沒有被編譯,有人說jsp在Apache伺服器中是在運行時時自動編譯運行的。秘密就在$INST_TOP/ora/10.1.3/j2ee/oacore/application-deployments/oacore/html/orion-web.xml這個配置文件中,修DEVELOPER_MODE和Main_Mode節點的值修改為如下所示:<param-name>developer_mode</param-name> <param-value>true</param-value> <param-name>main_mode</param-name> <param-value>recompile</param-value> 然後運行下面的命令重啟HTTP伺服器:$ADMIN_SCRIPTS_HOME/adapcctl.sh stopall $ADMIN_SCRIPTS_H
⑻ Jsp文件運行時先被預編譯為什麼文件;
首先要說嗎jsp的本質,jsp本質是servlet的一種實現方式。
那麼既然是servlet,也就是說是java類,類的定義文件是.java 格式 例如: test.java
那麼以.jsp結尾的格式的文件肯定就不是java 類了啊。那麼怎麼轉換成java類呢。
好的 先根據.jsp文件轉換成.java文件。生成了java文件也就是java類了,那麼jsp就被編譯成了class文件了
⑼ 關於JSP文件的編譯環境
1.jsp文件只能在Java Web伺服器中進行編譯,比如Tomcat,JBoss。這些伺服器提供了servlet容器,只能通過Servlet容器創建JSP頁面。
2.JSP不需要學習英語,總共也沒有幾個單詞,看字母也能看會。
3.即使是一個純粹的美工學習JSP也最好對Java有所了解。負責很容易弄錯。
4.JDK是一個Java的運行加開發環境,不可能直接運行的,需要配置JDK來使Tomcat能夠正常運行。
5.JSP文件放在Tomcat的指定目錄下才能被執行。
綜上所述:建議樓主稍微系統的了解一下Java Web編程,網上學習視頻多得是,隨便找一個看看。
⑽ jsp源代碼的編譯
jsp 是一個 內容生成與表示分離的技術,他實際還是一個Servlet .
JSP程序要運行於特定的Web伺服器中,例如Tomcat、WebLogic Server。
每次訪問JSP時,伺服器會把JSP程序編譯為一個Java類,這個Java類有特定的名稱,即Servlet.
